Подтвердить что ты не робот

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

Я видел несколько сообщений, связанных с ошибками тайм-аута в Selenium. Это становится все более и более невыносимым, поскольку это делает мой тестовый пакет непригодным. Я тестирую веб-страницу, находящуюся в разработке.

У меня есть набор для регрессии около 300 тестовых сценариев, который всегда работал до последнего обновления firefox и selenium webdriver. Теперь почти для каждого другого теста я получаю:

Net::ReadTimeout (Net::ReadTimeout).

Это не может быть совпадением. Кто-нибудь знает, что может вызвать внезапные проблемы с тайм-аутом? Я попытался вернуться к предыдущим версиям webdriver и firefox.

4b9b3361

Ответ 1

Тайм-аут по умолчанию - 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

Ответ 2

Еще один вариант использования 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