Как свернуть окно браузера с селеном?

Я прочитал несколько вопросов, связанных с минимизацией, используя Selenium, но нигде в их документации не говорится, как взаимодействовать с окном, которое было свернуто. Если вы попытаетесь запустить функции set_window_size() или maximize_window() в драйвере после сворачивания браузера, Selenium выдает исключение, сообщающее, что состояние окна недопустимо для этих операций. Мне трудно поверить, что, свернув окно, вы больше не сможете управлять браузером. Кто-нибудь делал это?

РЕДАКТИРОВАТЬ: Вот мой код: self.driver.minimize_window() self.driver.maximize_window()

И вот след, который я вижу: Traceback (most recent call last): ... self.browser.maximize_window() File "/home/user/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 737, in maximize_window self.execute(command, params) File "/home/user/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/home/user/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: failed to change window state to normal, current state is minimized (Session info: chrome=70.0.3538.77) (Driver info: chromedriver=2.41,platform=Linux 4.15.0-39-generic x86_64)

2 ответа

У меня тоже была эта пробема.

Вы должны хранить driver.current_window_handleв качестве переменной до минимизации. Затем используйте driver.switch_to.windowчтобы переключиться на это окно.

Перейдите по этой ссылке, чтобы прочитать более подробную информацию:Как развернуть окно селена?

Нашел ответ при просмотре логов коммитов: https://github.com/w3c/webdriver/commit/1e1e590542da97f64cf58268940f88aec5ad6697

Решение состоит в том, чтобы вызвать set_window_rect() в драйвере. Это восстановит состояние окна после сворачивания, увеличения или перехода в полноэкранный режим.

РЕДАКТИРОВАТЬ: большая проблема здесь в том, что веб-драйвер, который я использую, не совместим с w3c. Вышеуказанное будет работать только с веб-драйверами w3c.

Другие вопросы по тегам