2017-08-03 48 views
2

我有一個使用google recaptcha的Angular頁面。我已經使用Protractor編寫了自動化測試(並且使用了測試網站/祕密密鑰進行recaptcha),並且它適用於Chrome瀏覽器。Google Recaptcha未顯示用於無頭鍍鉻的自動化測試

但我有一個要求,使用Xvfb運行virtualized Chrome作爲ubuntu/jenkins的測試過程的一部分。我安裝了Chrome驅動程序。當我運行這個設置和下面的功能設置爲量角器測試,

capabilities: { 
    browserName: 'chrome', 

    chromeOptions: { 
    args: [ "--headless", "--disable-gpu", "--window-size=1800,1800" ] 
    } 
    } 

的驗證碼只是不露面,並顯示如下, enter image description here

Chrome的驅動程序版本是chromedriver_2.31

我在做什麼錯?

回答

1

我遇到了同樣的問題,試圖在頁面中使用reCaptcha獲取屏幕截圖。這些技術是不同的,但google-chrome headless的潛在用途是相同的(我正在使用Puppeteer)。解決辦法是將userAgent設置爲兼容的東西,比如您經常使用的瀏覽器。 在我的情況(與木偶戲):

await page.setUserAgent('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/60.0.3112.113 Chrome/60.0.3112.113 Safari/537.36') 

對於其他一些代理字符串:看Chrome userAgents

對於量角器,您可以設置用戶代理,像這樣:

capabilities: { 
'browserName': 'chrome', 
'chrome-switches' : ["--user-agent ='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/60.0.3112.113 Chrome/60.0.3112.113 Safari/537.36'"] 
}, 

希望對你有用。

+0

我認爲這不工作了。這事有進一步更新嗎? – crey4fun

+0

在我使用的版本中,我引用的puppeteer使用仍然適用於我。據我所知,谷歌瀏覽器沒有任何突破性的變化。量角器實現(顯示在答案中)可能已經改變,但我沒有找到關於這方面的信息。 –