it-roy-ru.com

WebDriverException: неизвестная ошибка: не удалось изменить состояние окна на максимальное, текущее состояние нормальное с Chrome 70 и Chromedriver 2.43 на MAC OS X

Мы работаем на Mac, используя Chrome версии 70.0.3538.67 (официальная сборка) (64-разрядная версия), ChromeDriver 2.43.600229. Появляются окна Chrome, но URL застрял в «data :,». (трассировка стека ниже)

Мы нашли обходной путь, используя Chrome версии 69 с 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)
8
user2093025

Это сообщение об ошибке ...

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

... подразумевает, что ChromeDriver не удалось максимизировать состояние окна Chrome Browser клиента.


Багги Mac OSX ChromeDriver заменен

После выхода Chrome версии 70 некоторые из вас сообщили, что использование ChromeDriver для увеличения окна браузера на Mac больше не работает. Команда ChromeDriver изучила эту проблему и создала исправление для нее. Сборки ChromeDriver с исправлением теперь доступны в следующих местах:


Снимок электронной почты о выпуске ChromeDriver

ChromeDriver_new


Однако вашей главной проблемой является несовместимость между используемой вами версией двоичных файлов:

  • Ваш версия JDK является 1.8.0_131, что довольно древний .
    • Обновите JDK до последних уровней JDK 8u181 .
  • Ваша Selenium Client версия 3.4.0, которая почти на год старше .

С другой стороны, эта проблема выглядит как проблема регрессии из Запрос функции: ChromeDriver для поддержки изменения размера окна через удаленное соединение .

ChromeDriver v2.43 в Примечаниях к выпуску явно упоминается:

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");

Ссылка

Вы можете найти подробное обсуждение в driver.manage (). Window (). Maximize () проблема с ChromeDriver 2.33


Обновление (20 ноября 2018 г.)

  • ChromeDriver 2.44 был выпущен.
  • ChromeDriver 2.44 поддерживает версии Chrome от 69 до 71
  • Этот выпуск похож на ChromeDriver 2.43, но с дополнительными исправлениями ошибок. 
  • Ожидается, что ChromeDriver, который поддерживает chrome 72.x, будет выпущен в начале декабря.
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));

Мы также выполняем нашу удаленную автоматизацию в контейнерах AWS EC2 под управлением CentOS . В Windows и Mac этот флаг не имел проблем при локальном запуске.

0
Jim B

Обновление chromedriver до версии 2.44 решило проблему для меня (вроде). Больше не поймите ошибку, но окно развернуто горизонтально за пределы экрана. Тем не менее, тесты работают.

Вариант 1. Установка с помощью доморощенного

Если вы ранее установили его с помощью homebrew, он был перемещен в бочку. Так что удалите старую версию:

brew uninstall chromedriver

Затем установите новую версию из бочки:

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