2016-04-18 21 views
2


Capybara、Cucumber、Selenium Webdriver(Ruby)でRailsアプリのテストを行っています。私は質問があります:Net :: ReadTimeoutが起きてもCapybaraがブラウザーを閉じないのはなぜですか?各テストシナリオの後にブラウザーにブラウザを終了するよう依頼しましたか? Net :: ReadTimeoutが発生すると、ブラウザを強制的に閉じることができますか?
これは私が私のために働く別のソリューションを持って私のhooks.rb
Net :: ReadTimeoutエラーが発生した場合、Capybaraはブラウザを終了しません。

After do |scenario| 
    if scenario.failed? 
    page.driver.browser.save_screenshot("#{scenario.__id__}.png") 
    end 
    Capybara.current_session.driver.browser.manage.delete_all_cookies 
    Capybara.current_session.driver.quit 
end 

答えて

0

です。

  1. ような方法であなたのspec_helper.rbを設定宝石capybara-screenshot

  2. を追加します。

Capybara::Screenshot.autosave_on_failure = true 

Capybara::Screenshot.prune_strategy = :keep_last_run 

Capybara.default_wait_time = 60 
+0

また、あなたがすべてのシナリオのスクリーンショットを失敗した保存し、 –

+0

感謝をしたいと、それに名前を付けることができますが、私は失敗したスクリーンショットを保存することができます。しかし、この場合、Net :: ReadTimeoutが発生すると、ブラウザを閉じずにシナリオが失敗しました。それが問題です。 –

+0

James、そういうわけで私はあなたにCapybara.screenshot gemを使うことを申し出ます。私は以前と同じ問題があり、宝石を選んだ。 –

関連する問題