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

如何从swagger上传文件到流?

由于 cookie,Wavesurfer 不会使用 CROS 错误绘制波浪

使用 javascript/jquery 动态调整画布窗口的大小?