Net::ReadTimeout (Net::ReadTimeout) Selenium Ruby
Posted
技术标签:
【中文标题】Net::ReadTimeout (Net::ReadTimeout) Selenium Ruby【英文标题】: 【发布时间】:2014-12-08 21:27:41 【问题描述】:我看过一些与 Selenium 中的超时错误相关的帖子。这变得越来越难以忍受,因为它使我的测试包无法使用。我正在测试一个正在开发的网页。
我有一个包含大约 300 个测试场景的回归套件,在最新更新到 Firefox 和 selenium webdriver 之前一直有效。现在对于我得到的几乎所有其他测试:
Net::ReadTimeout (Net::ReadTimeout)
错误。
这绝非巧合。有谁知道可能导致突然超时问题的原因?我已经尝试回到以前版本的 webdriver 和 firefox。
【问题讨论】:
使用 FF32 和selenium-webdriver
-gem v2.43.0 再次为我工作。您使用哪些版本?
我使用的是 FF32.0.3 和 webdriver 2.43.0。
抱歉,那我就“走运”了。我的 FF 32.0.3 确实可以工作(在 Ubuntu 14.04 上)。
我发现它在自动化期间每次都在同一个地方超时,但是运行手动测试不会遇到这个问题。这就是将我引向 Selenium 的原因
我也遇到了同样的问题,你解决了吗?
【参考方案1】:
另一个使用 RSpec::Retry 的选项,它为间歇性失败的规范添加了重试选项。
require 'rspec/retry'
RSpec.configure do |config|
# show retry status in spec process
config.verbose_retry = true
# Try twice (retry once)
config.default_retry_count = 2
# Only retry when Selenium raises Net::ReadTimeout
config.exceptions_to_retry = [Net::ReadTimeout]
end
【讨论】:
刚刚在 Codeship 上为讨厌的 Net::ReadTimeout 错误添加了 rspec-retry gem,它成功了!【参考方案2】:默认超时为 60 秒。要尝试的一件事是调整 internal timeout 以查看是否可以解决问题:
Capybara.register_driver :selenium do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120 # instead of the default 60
Capybara::Selenium::Driver.new(app, browser: :firefox, profile: profile, http_client: client)
end
【讨论】:
以上是关于Net::ReadTimeout (Net::ReadTimeout) Selenium Ruby的主要内容,如果未能解决你的问题,请参考以下文章
failedToLoad SourceMap:无法加载 https://unpkg.com/peerjs.min.js.map 的内容:HTTP 错误:状态码 404,net::ERR_HTTP_RE
Tensorboard: OSError: [Errno 22] Invalid argument