python - 如何使用硒取消最小化浏览器窗口?
问题描述
我已经使用 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)
解决方案
通过提交日志找到答案:https ://github.com/w3c/webdriver/commit/1e1e590542da97f64cf58268940f88aec5ad6697
解决方案是在驱动程序上调用 set_window_rect()。这将在最小化、最大化或全屏后恢复窗口的状态。
编辑:这里更大的问题是我使用的网络驱动程序不符合 w3c 标准。以上仅适用于 w3c webdrivers。
推荐阅读
- c - C 预处理器:不允许 #include 指令的参数以数字开头的原因是什么?
- javascript - 为什么会这样?我在控制台输出中得到了正确的显示,在 UI 中得到了正确的行数,但我没有得到任何输出
- oracle - 无法将 NULL 插入表中
- javascript - 打字稿扩展类没有按预期工作
- python - 有没有办法镜像 python 函数?
- javascript - Nuxtjs:如何在另一个组件中调用组件?
- javascript - Google Apps 脚本 - 您能否从单元格或预定义的文本字符串中获取 IF 语句的条件?
- javascript - 是否可以通过 JS 注释掉特定的脚本?
- azure-devops - Azure DevOps REST api - 使用变量运行管道
- python - Django:如何处理多个应用程序的网址