WebDriverException: неизвестная ошибка: не удалось изменить состояние окна до максимального, текущее состояние нормальное с ChromeDriver v2.43 и Chrome 70 на MacOSX - PullRequest
0 голосов
/ 19 октября 2018

Мой macOS только что обновил chrome автоматически до v70, я обновил chromedriver до последней версии соответственно, однако мои тесты автоматизации Selenium не могут быть запущены из-за ошибки ниже при вызове

tempDriver.manage().window().maximize();

Сообщение об ошибке

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.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8),platform=Mac OS X 10.14.0 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 111 milliseconds
Build info: version: '2.39.0', revision: '14fa800511cc5d66d426e08b0b2ab926c7ed7398', time: '2013-12-16 13:18:38'
System info: host: 'jingfeideMacBook-Pro.local', ip: '127.0.0.1', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14', java.version: '1.8.0_111'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{mobileEmulationEnabled=false, hasTouchScreen=false, platform=MAC, acceptSslCerts=false, goog:chromeOptions={debuggerAddress=localhost:58298}, acceptInsecureCerts=false, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, setWindowRect=true, unexpectedAlertBehaviour=, applicationCacheEnabled=false, rotatable=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8), userDataDir=/var/folders/mc/p32y5m3503b8qrq4nv3fjc280000gn/T/.org.chromium.Chromium.tp2flf}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, version=70.0.3538.67, browserConnectionEnabled=false, nativeEvents=true, locationContextEnabled=true, cssSelectorsEnabled=true}]
Session ID: 5010a1722b23e3829ebcb8b45ceab234
    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:193)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
    at org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.maximize(RemoteWebDriver.java:783)

Есть мысли?Я знаю, что версия Selenium немного устарела, но я не могу обновить ее из-за корпоративной политики или чего-то такого.

Balin

Ответы [ 3 ]

0 голосов
/ 19 октября 2018

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

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

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

Не знаю, как эта проблема преодолена с комбинацией ChromeDriver v2.43 и Chrome Browser v70.0 , но выглядит как проблема регрессии для Запрос функции: ChromeDriver для поддержки изменения размера окна через удаленное соединение .

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

Решена проблема 1855: Запрос функции: ChromeDriver для поддержки изменения размера окна по удаленному соединению [[Pri-2]]


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

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

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

ChromeDriver_new


Однако, согласно рекомендациям для максимизации клиента 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


Дополнительные соображения

  • Ваша версия JDK равна 1.8.0_111 , что довольно древний .
    • Обновление JDK до последних уровней JDK 8u181 .
  • Ваш клиент Selenium версия 2.39.0 из 2013-12-16 13: 18: 38 , что почти 2 года старше.
0 голосов
/ 01 ноября 2018

Мы столкнулись с той же проблемой, обходной путь должен закомментировать код:

tempDriver.manage().window().maximize();

0 голосов
/ 19 октября 2018

Пока проблема не будет решена, вы можете обойти это с помощью:

Пользовательский размер окна

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

Вы можете получить разрешение экрана

Toolkit toolkit = Toolkit.getDefaultToolkit();
int width = (int) toolkit.getScreenSize().getWidth();
int height = (int) toolkit.getScreenSize().getHeight();

Аргумент к хрому

ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");

Исполнитель JavaScript

((JavascriptExecutor) driver).executeScript("if(window.screen){
    window.moveTo(0, 0);
    window.resizeTo(window.screen.availWidth, window.screen.availHeight);
    };");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...