Net:: ReadTimeout (Net:: ReadTimeout) Selenium Ruby
Я видел несколько сообщений, связанных с ошибками тайм-аута в Selenium. Это становится все более и более невыносимым, поскольку это делает мой тестовый пакет непригодным. Я тестирую веб-страницу, находящуюся в разработке.
У меня есть набор для регрессии около 300 тестовых сценариев, который всегда работал до последнего обновления firefox и selenium webdriver. Теперь почти для каждого другого теста я получаю:
Net::ReadTimeout (Net::ReadTimeout)
.
Это не может быть совпадением. Кто-нибудь знает, что может вызвать внезапные проблемы с тайм-аутом? Я попытался вернуться к предыдущим версиям webdriver и firefox.
Ответы
Ответ 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