我在Selenium中看到了一些与超时错误相关的帖子。这变得越来越难以忍受,因为它使我的测试包无法使用。我正在测试目前正在开发的网页。
我有一个大约300个测试场景的回归套件,它一直有效,直到firefox和selenium webdriver的最新更新。现在几乎所有其他测试我都得到了:
Net::ReadTimeout (Net::ReadTimeout)
错误。
这不可能是巧合。有谁知道什么可能导致突然的超时问题?我已经尝试过回到以前版本的webdriver和firefox。
答案 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