web-dev-qa-db-ja.com

Net :: ReadTimeout(Net :: ReadTimeout)セレンRuby

Selenium内のタイムアウトエラーに関連するいくつかの投稿を見ました。テストパックが使用できなくなるため、これはますます耐え難くなっています。現在開発中のウェブページをテストしています。

私は約300のテストシナリオの回帰スイートを持っています。これは、firefoxとSelenium webdriverの最新のアップデートまで常に機能しています。今、私が得ている他のほとんどすべてのテストについて:

Net::ReadTimeout (Net::ReadTimeout)エラー。

これは偶然ではありません。誰かが突然のタイムアウトの問題を引き起こしている可能性があることを知っていますか?以前のバージョンのwebdriverとfirefoxに戻ってみました。

19
Tom

デフォルトのタイムアウトは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
10
Jay P.

断続的に失敗するスペックの再試行オプションを追加する 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
10
Jay P.