2017-04-21 108 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。

相关问题