web-dev-qa-db-ja.com

`google-chrome --headless`を使用するときにブラウザウィンドウのサイズを設定するにはどうすればよいですか?

Selenium Webdriverコマンドを使用して、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
33
Leo Gallucci

見つかった場合は、--window-sizeコマンドライン 引数 をGoogle Chromeに渡すだけです。たとえば、--window-size=1920,1080

分度器 設定では、これは次のようになります。

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

クールなのは、ウィンドウのサイズが現在のディスプレイに限定されず、テストに必要なだけ大きなヘッドレスの意味があることです。

Javaコード:

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

ここでもう少し詳しく説明します。 https://stackoverflow.com/a/43542416/511069

58
Leo Gallucci

これは少し遅いと思いますが、組み込みのセレンを使用しないのはなぜですか?

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

チャンピオンのように機能します。 FireFox、Chrome(ヘッドレスであっても)、およびEdgeに使用しました。

6
MivaScott