我遇到一个直到上周才可用的脚本问题(并且我没有更新任何内容)。由于某种原因,我在网站上使用硒与python的速度确实很慢,并且我需要的信息加载相对较快,但是驱动程序将一直等待直到页面完全加载为止。
为避免这种情况,我尝试:
DesiredCapabilities().FIREFOX
中的browser.set_page_load_timeout(3)
使用第一个选项,我发现我不得不插入大量等待,而使用第二个选项,脚本通常是稳定的。 该页面将尝试加载,然后“失败”以进行超时,但是随后我可以获得在此期间已加载的信息。
现在,驱动程序将在超时异常后冻结。无论我做什么,(获取任何网站,甚至删除Cookie),我总是会遇到超时异常。
browser.delete_all_cookies()
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
browser.delete_all_cookies()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 878, in delete_all_cookies
self.execute(Command.DELETE_ALL_COOKIES)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: timeout
(Session info: chrome=75.0.3770.100)
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.14.5 x86_64)
此脚本的真正目标是能够在页面被认为已满之前“起作用”。
browser.set_page_load_timeout(3)
允许我这样做,但是现在抛出异常时,驱动程序被破坏了,它将遵循的唯一命令是browser.close()
或quit()
。
“渴望”模式是否有其他选择?