Versucht, die Browsergröße auf chrome --headless
mit Selenium Webdriver-Befehlen.
Ich erhalte folgenden Webtreiber-Fehler:
- 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
Fand es einfach vorbei --window-size
Befehlszeile Argument für Google Chrome, zum Beispiel --window-size=1920,1080
In einer Winkelmesser Konfiguration würde dies so aussehen:
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['headless', 'window-size=1920,1080']
}
}
Das coole daran ist, dass die Fenstergröße nicht auf das aktuelle Display beschränkt ist, sondern wirklich kopflos bedeutet, dass es so groß sein kann, wie es für die Tests benötigt wird.
Java-Code:
options.addArguments("window-size=1920,1080");
Ich möchte dies hier etwas näher erläutern: https://stackoverflow.com/a/43542416/511069
Mir ist klar, dass es etwas spät ist, aber warum nicht einfach das eingebaute Selen verwenden?
aDriver.manage().window().setSize(new Dimension(width, height));
Funktioniert wie ein Champion. Ich habe es für FireFox, Chrome (sogar kopflos) und Edge verwendet.