ruby-on-rails - 我怎样才能让 watir(chrome-driver) 存活更长时间?
问题描述
我对硒(Ruby Watir)进行了长期的抓取工作。
但 60 分钟后,我收到此错误:
Net::ReadTimeout: Net::ReadTimeout with #<TCPSocket:(closed)>
我的代码:
args = %w[disable-extions headless disable-gpu disable-dev-shm-usage disable-software-rasterizer no-sandbox]
browser = Watir::Browser.new :chrome, options: {args: args}
Watir.default_timeout = 999999
我怎样才能让 chrome-driver 保持更长时间?
解决方案
使用此代码
args = %w[disable-extions headless disable-gpu disable-dev-shm-usage disable-software-rasterizer no-sandbox]
client = Selenium::WebDriver::Remote::Http::Default.new
client.read_timeout = 120 # seconds
driver = Selenium::WebDriver.for :chrome, options: {args: args}, http_client: client
browser=Watir::Browser.new driver
这将等待 120 秒页面加载
并且不要更改,default_timeout
因为这不是用于页面加载,而是用于存在元素。
推荐阅读
- python - 将 18 位 LDAP/FILETIME 时间戳转换为人类可读的日期
- c++ - 尝试确定转换后的范围是否为空
- acumatica - 无需 API 调用即可导出 Acumatica 数据
- c# - 双向绑定未更新
- javascript - Quill 富文本编辑器调整图像大小仅适用于 IE,但不适用于 Chrome 或 Edge
- php - Polylang 正在改变我的主页 - Wordpress
- .net - 有没有办法读取 F# 控制台应用程序中特定行上的文本?
- django - django中没有这样的表
- kdb - 将表保存到 csv 文件,其中文件名和表名都是变量
- database - Electron App(用于生产)与单个文件中的任何数据库