2017-04-21 130 views
15

嘗試使用Selenium webdriver命令在Chrome --headless上設置瀏覽器大小。如何在使用google-chrome -headless時設置瀏覽器窗口大小?

我得到這個webdriver的錯誤:

 - Failed: unknown error: cannot get automation extension 
from unknown error: page could not be found: chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html 
    (Session info: headless chrome=58.0.3029.81) 
    (Driver info: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 4.4.0-72-generic x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 10.07 seconds 
Build info: version: '3.3.1', revision: '5234b32', time: '2017-03-10 09:04:52 -0800' 
System info: host: '826f6a766112', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-72-generic', java.version: '1.8.0_121' 
Driver info: org.openqa.selenium.chrome.ChromeDriver 
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5), userDataDir=/tmp/.org.chromium.Chromium.cuymDL}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=58.0.3029.81, platform=LINUX, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}] 
Session ID: 9569e5ebd8f7540ce510b20647443baf 
+0

您能否提供以下信息:1.您使用HtmlUnitDriver或PhantomJSDriver的無頭瀏覽器? 2.你能分享你想要訪問的網址嗎? 3.你的步驟是什麼? 4.你觀察到什麼錯誤? – DebanjanB

+0

沒有幻影,這是真正的Chrome瀏覽器,真正無頭。我找到了答案,見下文。 –

回答

29

找到它,只需--window-size命令行argument傳遞給谷歌Chrome,例如--window-size=1920,1080

Protractor配置,這將是這樣的:

capabilities: { 
    browserName: 'chrome', 
    chromeOptions: { 
     args: ['headless', 'window-size=1920,1080'] 
    } 
} 

很酷的事情是,窗口大小不限於當前的顯示,真正hea dless的含義可以與測試所需的一樣大。

Java代碼:

options.addArguments("window-size=1920,1080"); 

我拓展更多的關於這個位置:https://stackoverflow.com/a/43542416/511069

+1

對於那些使用java版本的用戶: options.addArguments(「window-size = 1920x1080」); 而不是: options.addArguments(「window-size」,「1920x1080」); – alknows

+1

這在MacOS上不適用於我,但'window-size = 1920,1080'(注意逗號)。鏈接的文檔也反映了這一點。 –

+0

謝謝傑米!固定!! –

0

我意識到這是一個有點晚了,但爲什麼不直接使用內置的硒?

aDriver.manage().window().setSize(new Dimension(width, height)); 

像冠軍一樣工作。我已經將它用於FireFox,Chrome(甚至是無頭)和Edge。

相關問題