Net :: ReadTimeout(Net :: ReadTimeout)Selenium Ruby

时间:2014-10-14 07:19:33

标签: ruby selenium cucumber capybara

我在Selenium中看到了一些与超时错误相关的帖子。这变得越来越难以忍受,因为它使我的测试包无法使用。我正在测试目前正在开发的网页。

我有一个大约300个测试场景的回归套件,它一直有效,直到firefox和selenium webdriver的最新更新。现在几乎所有其他测试我都得到了:

Net::ReadTimeout (Net::ReadTimeout)错误。

这不可能是巧合。有谁知道什么可能导致突然的超时问题?我已经尝试过回到以前版本的webdriver和firefox。

2 个答案:

答案 0 :(得分:10)

默认超时为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

答案 1 :(得分:10)

使用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