Невозможно увеличить окно Chrome в режиме безглавых

Недавно я обновил свою версию Chrome до 60, а Chromeriver до версии 2.31. Сообщите, что я начал получать следующее исключение при попытке развернуть окно браузера.

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

org.openqa.selenium.WebDriverException: unknown error: failed to change window state to maximized, current state is normal (Session info: chrome=60.0.3112.78) (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Linux 4.2.0-27-generic x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 108 milliseconds Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09' System info: host: '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' Session ID: c7de7149dd490cc7760d2f4fc49f0325 Driver info: 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)}, networkConnectionEnabled=false, unexpectedAlertBehaviour=, rotatable=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}]

Я запускаю свои тесты в автономном режиме, используя ChromeDriver на Geb.

  • Версия Chrome - 60.0.3112.78
  • версия хроматического драйвера - 2.31.488763
  • ОС - Ubuntu 14.04.4 LTS
  • Версия Selenium - 2.53.1
  • Привязки языка WebDriver
  • Геб - 0.13.1

Ответ 1

Поскольку вы запускаете тесты в автономном режиме, окно браузера active недоступно. Как таковой ваш

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

всегда будет терпеть неудачу в таких ситуациях, потому что драйвер не знает, какое окно развернуть, так как оно недоступно.

Вы можете либо следовать тому, что упомянул @DebanjanB, либо запустить браузер без монитора с определенным размером экрана, например 1440x900 и т.д., Сделав что-то вроде этого

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

Ответ 2

Добавьте ниже ChromeOption в ваш код:

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

Также обратитесь к этому блогу для более

Ответ 4

Я использую chromedriver 2.30 и chrome browser v60 через транспортир. Я запускаю тесты без головы, хотя я не делаю этого с помощью хромопций. Скорее я запускаю тесты без головы, используя xvfb-run в дистрибутиве unix. Я тоже сталкиваюсь с этой проблемой, хотя для меня это не случайно. См. Таблицу ниже

[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();

не работает для меня, к сожалению. Должен ли браузер .manage(). Window(). Maximize() работать все еще, поскольку я запускаю безголовную работу с использованием xvfb-run, а не без headless через опции chrome?

Ответ 5

Я бы посоветовал вам немного изменить строку кода:

Изменить:

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