Capybara和Javascript onbefoureunload

Mau*_*cio 4 javascript ruby-on-rails webdriver cucumber capybara

我有一个带有onbeforeunload函数的'ask_a_question'页面,在离开未保存的东西之前提醒用户(嘿!如SO:P).我正在使用带有水豚和webdriver的黄瓜进行测试,添加了@javascript标签,因为它使用了大量的javascript.黄瓜功能可能如下所示:

@javascript
Scenario: add a question
    Given I login as "Mauricio"
    And I go to the create question page 
    Then I should see "Ask a Question" within "header"
Run Code Online (Sandbox Code Playgroud)

但是一旦测试开始,Capybara(或WebDriver,我不知道)尝试重复使用相同的浏览器窗口进行其他测试,然后显示onbeforeunload警告,拧紧以下测试.

由于我的功能本身并未关闭或退出页面.我不认为添加一些东西来接受警报可能是个好主意.但说实话,我很失落.

如何告诉capybara为每个@javascript测试使用新的浏览器窗口或自动关闭onbeforeunload警报?

感谢名单

Der*_*ins 5

你可以使用page.driver.browser.switch_to.alert.dismiss(这里的文档)来摆脱警报.

你可以把它放在黄瓜钩后

After "@javascript" do
  page.driver.browser.switch_to.alert.dismiss
  # or accept it if that is what you prefer
  page.driver.browser.switch_to.alert.accept
end
Run Code Online (Sandbox Code Playgroud)