python - webdriver.get() 引发 TimeoutException
问题描述
我每天将 selenium 与 celery 和 mitmproxy 结合使用来扫描来自多个网站的 cookie。昨天我的应用程序由于以下异常而崩溃:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/celery/app/trace.py", line 385, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/celery/app/trace.py", line 648, in __protected_call__
return self.run(*args, **kwargs)
File "/home/myapplication/myapplication/api/tasks.py", line 24, in scan_periodically
x.startscanner(executor=Scan.PERIODICALLY)
File "/home/myapplication/myapplication/api/scanner.py", line 204, in startscanner
self.browser_list[self.browser_list_place].get(self.website.url)
File "/home/myapplication/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 333, in get
self.execute(Command.GET, {'url': url})
File "/home/myapplication/.local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/myapplication/.local/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: headless chrome=76.0.3809.100)
我将 selenium 的 python api 与 python 版本 3.7.3、selenium api 版本 3.141.0 和 Google Chrome 76.0.3809.100 与 chromedriver 版本 76.0.3809.68 一起使用。
为什么 webdriver get() 方法会引发 TimeoutException?
解决方案
试试这个参数来避免/覆盖超时,我在我的 selenium 库中找到了它们
import socket
from selenium.common.exceptions import TimeoutException
#Init your browser, then
#...
socket.setdefaulttimeout(int(60))
your_browser_driver.set_page_load_timeout(60)
推荐阅读
- android - ReactNative 和 64 位支持
- linux - 在最后一个斜杠后打印文本
- javascript - 如何在角度 js 中用 $q 取消承诺
- python - 在 gunicorn 下使用 django 登录到标准输出
- bash - 用于获取 azure DevOps 中先前提交和当前提交之间差异的 Shell 脚本
- python - 带有MultiIndex DataFrame的fillna的Pandas SettingWithCopyWarning
- python - 将传感器读数限制为小数点后 4
- javascript - 选中jQuery DataTable所有页面的所有复选框(服务器端处理)
- python - 如何避免收集错误 Python Numpy
- oracle - 更新 SQL 查询单行子查询返回多行时出错