当Net :: ReadTimeout错误发生时,Capybara不会关闭浏览器

时间:2016-04-18 02:54:35

标签: ruby selenium cucumber capybara


我正在使用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

1 个答案:

答案 0 :(得分:1)

我有另一个适合我的解决方案。

  1. 添加gem capybara-screenshot

  2. 以这种方式配置您的spec_helper.rb

  3. Capybara::Screenshot.autosave_on_failure = true
    
    Capybara::Screenshot.prune_strategy = :keep_last_run 
    
    Capybara.default_wait_time = 60