我默认使用capybara 2.1.0和selenium webdriver,minitest和test :: unit,对于需要访问.hover方法的一些测试,我使用的是Chrome webdriver
在几乎每个需要镀铬的测试结束时,我都有一个空白的镀铬窗口,我必须手动关闭以结束我的测试.
这是我的测试助手的一部分:
def use_chrome_driver
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.current_driver = :selenium_chrome
end
def setup
DatabaseCleaner.start
Capybara.current_driver = :selenium
end
def teardown
Capybara.reset_session!
Capybara.use_default_driver
DatabaseCleaner.clean
end
设置方法被chrome测试开始时调用的use_chrome_driver覆盖.即:
def test_example
use_chrome_driver
...
end
如果我不手动关闭打开的Chrome浏览器,则此test_example将永远不会退出.当我手动退出他时,测试结束并且没有错误地通过.
那么为什么这个Chrome浏览器窗口每次都不会自动关闭? (有时它会自动关闭~15%!)
最佳答案 这似乎是最近的问题:
https://github.com/jnicklas/capybara/issues/1035#issuecomment-24301966