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

Capybara doesn't close browser when Net::ReadTimeout error happens


我正在 运行 使用 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. 添加gemcapybara-screenshot

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

Capybara::Screenshot.autosave_on_failure = true

Capybara::Screenshot.prune_strategy = :keep_last_run 

Capybara.default_wait_time = 60