Selenium内のタイムアウトエラーに関連するいくつかの投稿を見ました。テストパックが使用できなくなるため、これはますます耐え難くなっています。現在開発中のウェブページをテストしています。
私は約300のテストシナリオの回帰スイートを持っています。これは、firefoxとSelenium webdriverの最新のアップデートまで常に機能しています。今、私が得ている他のほとんどすべてのテストについて:
Net::ReadTimeout (Net::ReadTimeout)
エラー。
これは偶然ではありません。誰かが突然のタイムアウトの問題を引き起こしている可能性があることを知っていますか?以前のバージョンのwebdriverとfirefoxに戻ってみました。
デフォルトのタイムアウトは60秒です。試すべきことの1つは、 内部タイムアウト を調整して、それがそれを修正するかどうかを確認することです。
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
断続的に失敗するスペックの再試行オプションを追加する 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