Как отменить сворачивание окна браузера с помощью селена?

Я прочитал несколько вопросов, связанных с минимизацией, используя 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)


person Niko    schedule 24.11.2018    source источник


Ответы (2)


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

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

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

person DrMorteza    schedule 12.02.2021

Нашел ответ, просматривая журналы фиксации: https://github.com/w3c/webdriver/commit/1e1e590542da97f64cf58268940f88aec5ad6697

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

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

person Niko    schedule 24.11.2018