web-dev-qa-db-ja.com

WebDriverException:不明なエラー:ウィンドウの状態を最大化に変更できませんでした。現在の状態は、MAC OS XでChrome 70&Chromedriver 2.43で正常です

Macでは、Chromeバージョン70.0.3538.67(公式ビルド)(64ビット)、ChromeDriver 2.43.600229を使用しています。Chromeウィンドウが表示されますが、URL 「data :,」でスタックしています(以下のスタックトレース)

Chromeバージョン69 w/chromedriver 2.43を使用して回避策を見つけましたが、Chromeは自身の更新を続けています。

Selenium-Java 3.4、htmlunit-driver 2.27、testng 6.9.4、junit 4.7をmaven-compiler-plugin 3.6.1、maven-surefire-plugin 2.22.0とともに実行しています。

org.openqa.Selenium.WebDriverException: unknown error: failed to change window state to maximized, current state is normal
  (Session info: chrome=70.0.3538.67)
  (Driver info: chromedriver=2.43.600229 (3fae4d0cda5334b4f533bede5a4787f7b832d052),platform=Mac OS X 10.13.6 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 107 milliseconds
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: Host: 'edited', ip: 'edited', os.name: 'Mac OS X', os.Arch: 'x86_64', os.version: '10.13.6', Java.version: '1.8.0_131'
Driver info: org.openqa.Selenium.chrome.ChromeDriver
Capabilities [{mobileEmulationEnabled=false, hasTouchScreen=false, platform=MAC, acceptSslCerts=false, goog:chromeOptions={debuggerAddress=localhost:52400}, acceptInsecureCerts=false, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, setWindowRect=true, unexpectedAlertBehaviour=, applicationCacheEnabled=false, rotatable=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.43.600229 (3fae4d0cda5334b4f533bede5a4787f7b832d052), userDataDir=/var/folders/cd/rrq4w8sd3gz92ygpfx5_kwtw0000gp/T/.org.chromium.Chromium.DCVcH3}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, version=70.0.3538.67, browserConnectionEnabled=false, nativeEvents=true, locationContextEnabled=true, cssSelectorsEnabled=true}]
Session ID: adb51408a3b04f990288d09604daa3a9
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:62)
    at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
    at Java.lang.reflect.Constructor.newInstance(Constructor.Java:423)
    at org.openqa.Selenium.remote.ErrorHandler.createThrowable(ErrorHandler.Java:215)
    at org.openqa.Selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.Java:167)
    at org.openqa.Selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.Java:671)
    at org.openqa.Selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.Java:694)
    at org.openqa.Selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.maximize(RemoteWebDriver.Java:925)
    at ufis.common.TestSuiteUtils.getDriver(TestSuiteUtils.Java:59)
    at ufis.test.cv.categories.research.independentresearch.IndependentResearchValidationTests.setUpClass(IndependentResearchValidationTests.Java:45)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.Java:85)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.Java:517)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.Java:213)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.Java:140)
    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.Java:170)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.Java:104)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
    at Java.lang.Thread.run(Thread.Java:748)
9
user2093025

このエラーメッセージ...

org.openqa.Selenium.WebDriverException: unknown error: failed to change window state to maximized, current state is normal

...ChromeDriverChrome Browserクライアントのウィンドウ状態をmaximizeできなかったことを意味します。


バギーMac OSX ChromeDriverの置き換え

Chromeバージョン70がリリースされた後、ChromeDriverを使用してMacでブラウザーウィンドウを最大化することは機能しなくなったという報告がありました。ChromeDriverチームはこの問題を調査し、修正を作成しました。修正プログラムは、次の場所で入手できます。


ChromeDriverリリースメールのスナップショット

ChromeDriver_new


ただし、主な問題は、次のように、使用しているバイナリのバージョン間の非互換性です。

  • あなたのJDKバージョン1.8.0_131であり、かなりancient
    • [〜#〜] jdk [〜#〜]を最近のレベルにアップグレード JDK 8u181 .
  • Selenium Clientバージョンは3.4.0で、ほぼ1年年前です
    • Seleniumを現在のレベルにアップグレードします Version 3.14.0

別の観点から見ると、この問題は 機能要求:リモート接続を介したウィンドウのサイズ変更をサポートするChromeDriver からの回帰問題のように見えます。

ChromeDriver v2.4リリースノート に明記されています:

リモート接続を介したウィンドウのサイズ変更をサポートするChromeDriver

ただし、ベストプラクティスChrome Browserクライアントを最大化するには、次のようにChromeOptionsクラスを使用することをお勧めします。

System.setProperty("webdriver.chrome.driver", "C:\\your_directory\\chromedriver.exe");
ChromeOptions opt = new ChromeOptions();
opt.addArguments("disable-infobars");
opt.addArguments("--start-maximized");
opt.addArguments("--disable-extensions");
WebDriver driver = new ChromeDriver(opt);
driver.get("https://google.com");

参照

詳細な議論は ChromeDriver 2.33のdriver.manage()。window()。maximize()の問題 にあります。


アップデート(2018年11月20日)

  • ChromeDriver2.44がリリースされました。
  • ChromeDriver2.44サポートChromeバージョン69 to 71
  • このリリースはChromeDriver2.43に似ていますが、バグが修正されています。
  • chrome 72.xをサポートするChromeDriverは、12月上旬にリリースされる予定です。
6
DebanjanB

Selenium 3.14.0を使用してこれと同じことが発生した場合、Chrome 70、Chromedriver 2.43。

私の修正は、--start-maximized私のchromeoptionsからフラグを立て、ブラウザを開いた後、次のことを行うメソッドを呼び出します。

    driver.manage().window().setPosition(new Point(0, 0));
    driver.manage().window().setSize(new Dimension(1920, 1080));

また、CentOSを実行しているAWS EC2コンテナーでリモートオートメーションを実行しています。 WindowsおよびMacでは、ローカルで実行するときに上記のフラグに問題はありませんでした。

0
Jim B

Chromedriverをバージョン2.44に更新すると、問題が解決しました(ある種)。エラーはもう発生しませんが、ウィンドウは画面を超えて水平方向に最大化されます。ただし、テストは機能します。

オプション1. homebrewでインストール

以前にhomebrewでインストールした場合は、caskに移動されています。したがって、古いバージョンをアンインストールします。

brew uninstall chromedriver

次に、caskから新しいバージョンをインストールします。

brew tap homebrew/cask
brew cask install chromedriver

これで、パスに新しいバージョンが追加され、エラーはなくなりました。

オプション2.ドライバーをダウンロードする

ドライバーをダウンロードします

https://chromedriver.storage.googleapis.com/index.html?path=2.44/

そして、あなたのパスに配置します。

0
Mikko

Codeceptionを使用してこの問題に直面している場合は、window_sizeオプションをfalseに変更するだけです。

- Webdriver:
   url: 'http://localhost/'
   window_size: false
0
CosetteN