【发布时间】:2013-09-13 12:50:22
【问题描述】:
我使用 capybara 2.1.0,默认使用 selenium webdriver,minitest 和 test::unit,对于一些需要访问 .hover 方法的测试,我使用的是 Chrome 网络驱动程序
在几乎每个需要 chrome 的测试结束时,我都有一个空白的 chrome 窗口,我必须手动关闭它才能结束我的测试。
这是我的测试助手的一部分:
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
setup 方法被 chrome 测试开始时调用的use_chrome_driver 覆盖。即:
def test_example
use_chrome_driver
...
end
如果我不手动关闭打开的 Chrome 浏览器,这个test_example 将永远不会退出。当我手动退出他时,测试完成并通过,没有错误。
那么为什么这个 Chrome 浏览器窗口不会每次都自动关闭呢? (有时它会自动关闭 ~15%!)
【问题讨论】:
-
你是在使用 Cucumber 来运行 Capybara 吗?我一起使用黄瓜和水豚看到这样的问题。再说一次,浏览器确实关闭了大约 30% 的时间!
-
不,我正在使用 Capybara + minitest 和 test::unit
标签: google-chrome selenium capybara