我正在尝试使用RSPEC / Capybara与FF中的对话框进行交互。
在How to test a confirm dialog with Cucumber?
中找到了一个优雅的解决方案page.driver.browser.switch_to.alert.accept
然而,当切换没有发生时,我们会出现间歇性故障。
有人遇到过这个吗?无论如何要确保切换始终成功?
谢谢!
答案 0 :(得分:0)
正如答案所述,当模式警报/确认/提示对话框打开时,浏览器将无响应。如今,即使浏览器已经学会显示非模态窗口,Capybara仍然无法评估页面上下文中的任何代码。
如链接的答案所述,只需存根window.confirm
方法即可。这是最稳定的方式。
您可以在Capybara中编写以下两个步骤:
When /I ensure the confirm box returns OK/ do
page.evaluate_script('window.confirm = function() { return true; }')
end
When /I ensure the confirm box returns Cancel/ do
page.evaluate_script('window.confirm = function() { return false; }')
end
然后你可以继续重写你的Capybara步骤,这样你首先要确保存根确认框,然后然后点击触发确认框的链接:
When I ensure the confirm box returns OK
And I click on Remove
Then ...