我正在尝试使用Capybara和capybara-webkit编写集成测试。我一直试图确认一个警告对话框。 capybara-webkit的文档说我已经设置了Capybara.javascript_driver = :webkit
,但我不知道这会如何影响Capybara :: page.driver,我认为它应该响应accept_alert
:
def test_update_key
Capybara.javascript_driver = :webkit
visit account_path accounts(:pending_account)
click_link "edit_account_key"
page.accept_alert "Would you like to edit this account key?" do # error on this line
click_button('OK')
end
end
此代码给出了以下错误:
Capybara :: NotSupportedByDriverError例外:Capybara :: Driver :: Base#accept_modal
我目前正在使用rails(4.0.13),capybara(2.4.4),capybara-webkit(1.4.1)
答案 0 :(得分:1)
我不知道Capybara.javascript_driver = :webkit
应该做什么,但它并没有为我做任何事情。我最终通过将Capybara.current_driver = :webkit
放在测试的顶部来解决问题。
然而,webkit仍然无法接受警报;我刚刚将驱动程序更改为Selenium,因为它运行没有问题。我曾经想要使用webkit,因为它无头,据说速度更快,但我还没有编写很多测试,所以速度在这一点上不是问题。可能不得不重新考虑一下。