webentwicklung-frage-antwort-db.com.de

Wie stelle ich die Größe des Browserfensters ein, wenn ich "google-chrome --headless" verwende?

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
33
Leo Gallucci

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

58
Leo Gallucci

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.

6
MivaScott