Ruby Cucumber、Capybara和Selenium检查是否显示浏览器警报

Ruby Cucumber、Capybara和Selenium检查是否显示浏览器警报,ruby,selenium,cucumber,capybara,Ruby,Selenium,Cucumber,Capybara,我正在寻找检查浏览器警报时,我做了一个测试用例。在我的场景中,如果发生错误,它将警告一个弹出对话框。我一直在寻找解决办法。到目前为止,我已经完成了如下功能: def alert_present? begin page.driver.browser.switch_to.alert true rescue Selenium::WebDriver::Error::NoAlertOpenError false end end 除此之外还有其他方法吗?好的,如

我正在寻找检查浏览器警报时,我做了一个测试用例。在我的场景中,如果发生错误,它将警告一个弹出对话框。我一直在寻找解决办法。到目前为止,我已经完成了如下功能:

def alert_present?
  begin
    page.driver.browser.switch_to.alert
    true
  rescue
    Selenium::WebDriver::Error::NoAlertOpenError
    false
  end
end

除此之外还有其他方法吗?

好的,如果您只想接受警报,而您不确定是否会有警报 然后我认为重写javascript中的confirm方法就可以了,只需确保在触发弹出对话框的行之前添加这一行

page.evaluate_script('window.confirm = function() { return true; }')
your line of code that triggers the alert 

如果有警报,则会在弹出时接受警报。如果没有警报,则不会出现问题。

在我的情况下,警报只会在用户输入为false时显示。例如,当用户在输入表单上键入-1时,它将发出错误消息警报,但当用户键入的数字大于0时,它不会发出错误警报。我试过一次,当警报没有出现时,这会产生错误