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

Мы находимся на 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 3.6.1, подключаемый модуль maven-surefire-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)

Ответы [ 4 ]

0 голосов
/ 21 ноября 2018

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

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

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

brew uninstall chromedriver

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

brew tap homebrew/cask
brew cask install chromedriver

Теперь у вас должна быть новая версия на вашем пути, и ошибка исчезла.

Вариант 2. Загрузите драйвер

Загрузите драйвер с

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

И поместите его на свой путь.

0 голосов
/ 01 ноября 2018

Если бы то же самое произошло с использованием 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 голосов
/ 05 ноября 2018

Для тех, кто сталкивается с этой проблемой при использовании Codeception, просто измените опцию window_size на false.

- Webdriver:
   url: 'http://localhost/'
   window_size: false
0 голосов
/ 19 октября 2018

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

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

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


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

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


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

ChromeDriver_new


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

  • Your JDK версия - это 1.8.0_131 , что довольно древний .
    • Обновление JDK до последних уровней JDK 8u181 .
  • Ваш клиент Selenium версия 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 , должен быть выпущен в начале декабря.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...