Tom
Tom

Reputation: 1105

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

I've seen a few posts related to timeout errors within Selenium. This is becoming more and more unbearable as it's rendering my test pack unusable. I'm testing a webpage currently in development.

I have a regression suite of around 300 test scenarios which has always worked until the latest update to firefox and selenium webdriver. Now for almost every other test i'm getting:

Net::ReadTimeout (Net::ReadTimeout) errors.

This can't be coincidence. Would anyone know of what could be causing the sudden timeout problems? I've tried going back to previous versions of webdriver and firefox.

Upvotes: 20

Views: 18678

Answers (2)

Jay Prall
Jay Prall

Reputation: 5465

The default timeout is 60 seconds. One thing to try is to adjust the internal timeout to see if that fixes it:

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

Upvotes: 10

Jay Prall
Jay Prall

Reputation: 5465

Another option to use RSpec::Retry which adds a retry option for intermittently failing specs.

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

Upvotes: 13

Related Questions