我正在使用Capybara,Cucumber和Selenium Webdriver(Ruby)运行Rails应用程序的测试。我有一个问题:为什么Capybara在Net :: ReadTimeout发生时不会关闭浏览器,即使我有一个钩子,要求浏览器在每个测试场景后退出?当Net :: ReadTimeout发生时,如何强制它关闭浏览器?
这是我的hooks.rb
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)
我有另一个适合我的解决方案。
添加gem capybara-screenshot
以这种方式配置您的spec_helper.rb
:
Capybara::Screenshot.autosave_on_failure = true
Capybara::Screenshot.prune_strategy = :keep_last_run
Capybara.default_wait_time = 60