如何使用 selenium 取消最小化浏览器窗口?

Nik*_*iko 5 python selenium minimize

我已经使用 Selenium 阅读了几个与最小化相关的问题,但他们的文档中没有任何地方说明如何与已最小化的窗口进行交互。如果您在最小化浏览器后尝试在驱动程序上运行set_window_size()或函数,Selenium 会抛出异常,指出窗口状态对于这些操作无效。maximize_window()我很难相信,一旦最小化窗口,您就无法再驱动浏览器。有人这样做过吗?

编辑:这是我的代码:

self.driver.minimize_window()
self.driver.maximize_window()
Run Code Online (Sandbox Code Playgroud)

这是我看到的回溯:

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)
Run Code Online (Sandbox Code Playgroud)

Nik*_*iko 1

在查看提交日志时找到了答案:https://github.com/w3c/webdriver/commit/1e1e590542da97f64cf58268940f88aec5ad6697

解决方案是在驱动程序上调用 set_window_rect()。这将在最小化、最大化或全屏显示后恢复窗口的状态。

编辑:这里更大的问题是我使用的网络驱动程序不符合 w3c 标准。以上仅适用于 w3c webdrivers。