web-dev-qa-db-ja.com

最大化できないChromeヘッドレスモードのウィンドウ

最近、chromeバージョンを60に、chromedriverをバージョン2.31にアップグレードしました。ブラウザウィンドウを最大化しようとすると、次の例外が表示されるようになりました。

    driver.driver.manage().window().maximize()

org.openqa.Selenium.WebDriverException:不明なエラー:ウィンドウの状態を最大化に変更できませんでした。現在の状態は正常です(セッション情報:chrome = 60.0.3112.78)(ドライバー情報:chromedriver = 2.31.488763(092de99f48a300323ecf8c2a4e2e7cab51de5ba8)、platform = Linux 4.2 .0-27-generic x86_64)(警告:サーバーはスタックトレース情報を提供しませんでした)コマンドの継続時間またはタイムアウト:108ミリ秒ビルド情報:バージョン: '2.53.1'、リビジョン: 'a36b8b1cd5757287168e54b817830adce9b0158d'、時間: '2016-06 -30 19:26:09 'システム情報:ホスト:' bb-blr-prod-stage-stg1-01 '、ip:'10 .3.211.2'、os.name: 'Linux'、os.Arch: 'AMD64' 、os.version: '4.2.0-27-generic'、Java.version: '1.7.0_80'セッションID:c7de7149dd490cc7760d2f4fc49f0325ドライバー情報:org.openqa.Selenium.chrome.ChromeDriver Capabilities [{platform = LINUX、acceptSslCerts = true 、javascriptEnabled = true、browserName = chrome、chrome = {userDataDir =/tmp/.org.chromium.Chromium.WABPhO、chromedriverVersion = 2.31.488763(092de99f48a300323ecf8c2a4e2e7cab51de5ba8)}、networkCo nnectionEnabled = false、expectedAlertBehaviour =、rotable = false、setWindowRect = true、locationContextEnabled = true、mobileEmulationEnabled = false、pageLoadStrategy = normal、version = 60.0.3112.78、takesHeapSnapshot = true、cssSelectorsEnabled = true、databaseEnabled = false、handlesAlerts = true、browserConnectionEnabled = false、webStorageEnabled = true、nativeEvents = true、hasTouchScreen = false、applicationCacheEnabled = false、takesScreenshot = true}]

GebでChromeDriverを使用して、ヘッドレスモードでテストを実行します。

  • Chromeバージョン-60.0.3112.78
  • chromedriverバージョン-2.31.488763
  • OS-Ubuntu 14.04.4 LTS
  • Seleniumバージョン-2.53.1
  • WebDriver言語バインディング
  • ゲブ-0.13.1
15
Pinaki

ヘッドレスモードでテストを実行しているため、activeブラウザーウィンドウは使用できません。そのようにあなたの

   driver.driver.manage().window().maximize()

このような状況では、ドライバーはどのウィンドウを最大化するかわからないため、常に失敗します。

@DebanjanBが言及した内容に従うか、1440x900などの特定の画面サイズでヘッドレスブラウザーを起動して、次のようにすることができます。

 driver.manage().window().setSize(new Dimension(1440, 900));
14
demouser123

コードに以下のChromeOptionを追加します。

options.addArguments("--window-size=1325x744");

このブログ も参照してください

7
NarendraR

これは未解決のバグです(こちらをご覧ください): https://bugs.chromium.org/p/chromedriver/issues/detail?id=1901

3
indranil32

私はchromedriver 2.30&chrome分度器を介してブラウザv60を使用しています。chromeoptionsを介しては実行しませんが、ヘッドレスでテストを実行します。むしろ、unixでxvfb-runランダムに失敗しますが、この問題も発生しています。以下のスタックを参照してください。

[chrome #11]       [31mWebDriverError: unknown error: failed to change window state to maximized, current state is normal
[chrome #11]         (Session info: chrome=60.0.3112.78)
[chrome #11]         (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 3.10.0-514.26.2.el7.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information)
[chrome #11]       Command duration or timeout: 122 milliseconds
[chrome #11]       Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
[chrome #11]       System info: Host: 's1wfadvcilvm08', ip: '172.16.184.183', os.name: 'Linux', os.Arch: 'AMD64', os.version: '3.10.0-514.26.2.el7.x86_64', Java.version: '1.8.0_141'
[chrome #11]       Driver info: org.openqa.Selenium.chrome.ChromeDriver
[chrome #11]       Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57), userDataDir=/tmp/.org.chromium.Chromium.BNsN1w}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=60.0.3112.78, platform=LINUX, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}]

各テストの最初の私のコードは次のことを行います

browser.manage().window().maximize();

に変更

driver.driver.manage().window().maximize();
driver.manage().window().maximize();

残念ながら私にとってもうまくいきません。 browser.manage()。window()。maximize()は、chrome optionsを使用してヘッドレスを実行するのではなく、xvfb-runを使用してヘッドレスを実行しているため、まだ動作していませんか?

2
bhreinb

コードの行を少し変更することをお勧めします。

変化する:

driver.driver.manage().window().maximize()

に:

driver.manage().window().maximize()

うまくいかない場合は、SeleniumバインディングをJavaとして、Chromeモードでベストプラクティスに従ってheadlessを使用すると仮定して、Google Chrome次のようにChromeOptionsクラスを介してブラウザ:

System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("start-maximized");
WebDriver driver = new ChromeDriver(options);
driver.navigate().to("https://google.com");
1
DebanjanB