ruby-on-rails - 当我需要很长时间加载页面时,如何在 Ruby Watir 中停止页面加载并关闭浏览器?
问题描述
我尝试了不同的方法来延长浏览器的加载时间,但仍然给我以下错误 Net::ReadTimeout ,我想知道这是否是一种可以检测页面加载时间的方法,例如 10 秒后它自动关闭并进入下一个流程
browser.driver.manage.timeouts.implicit_wait = 40
browser.driver.manage.timeouts.page_load = 40
Watir.default_timeout = 40
解决方案
当您使用 WATIR(等待元素)时,您的第一行不是必需的。当您直接使用 selenium 时,这是必要的。因为 WATIR 有它自己的计时器,它会等待 30 秒进行元素交互。
对于第二个(页面加载),您必须使用以下行来增加或减少页面加载时间。默认超时为60秒,如果要增加时间(例如120),则编写以下coe
client = Selenium::WebDriver::Remote::Http::Default.new
client.read_timeout = 120
browser = Watir::Browser.new :firefox, http_client: client
如果您想告诉驱动程序您不想等待任何页面加载,请使用以下语句
Watir::Browser.new :firefox,page_load_strategy: 'none'
如果你想等待页面加载到指定时间,如果没有加载,并且你想关闭浏览器,那么编写以下代码
begin
browser.goto 'Your Url'
rescue Net::ReadTimeout
browser.close rescue ''
end
推荐阅读
- c# - 当 1 个更改时更新 2 个用户模型列表
- angular - 无法解析 DataService Angular 的所有参数
- git - Git子模块添加错误
- php - 在树枝模板 symfony 3 中显示流式响应
- wso2 - 与使用连接操作的 siddhi 查询的完全分布式部署相关的问题
- delphi - Delphi 7 - 是否可以在异常之外获取调用堆栈信息?
- c# - 输入数字时设置输入文本框的文化
- polymer - 聚合物 dom-如果不重新烧制
- hl7-fhir - 如何使用 Timing 表示事件偏移量?
- visual-studio - 更改 ReSharper 添加 using 语句的位置