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

Tom*_*Tom 19 ruby selenium cucumber capybara

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

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

Net::ReadTimeout (Net::ReadTimeout) 错误.

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

Jay*_* P. 10

默认超时为60秒.要尝试的一件事是调整内部超时以查看是否修复了它:

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
Run Code Online (Sandbox Code Playgroud)


Jay*_* P. 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
Run Code Online (Sandbox Code Playgroud)