在Firefox中确认警报但

时间:2017-03-27 19:47:55

标签: ruby selenium firefox cucumber watir

进行选择单选按钮的测试,然后单击“删除”按钮,弹出模式对话框/警告框。

我使用的是Cucumber,所以这里的步骤是如何工作的:

When /^i confirm the alert$/ do 
      Watir::Wait.until(timeout: 10) {@browser.alert.exists?}
      puts "i see the alert"
      @browser.alert.ok 
end

我放入了懒惰的调试步骤,因为我认为这可能是浏览器/驱动程序问题。

我已经在Chrome中完成了这项工作,但对于我在这个特定脚本中所处的特定环境,它不是一个选项。

Firefox是我唯一的选择,这就是:

  • "我看到警报"返回
  • 对话框已在
  • 上确认

然后我收到找不到警报(Watir :: Exception :: UnknownObjectException)

我使用的是Firefox 45 ESR / Selenium Webdriver 3.0.5

不确定它是否与Firefox / Selenium兼容性问题有关?

点击警告确定按钮后,应用程序无法执行任何操作

2 个答案:

答案 0 :(得分:1)

确保您使用的是Watir 6.2.1;我们刚刚发布了一个可以解决此问题的错误修复程序。

答案 1 :(得分:0)

找到修复!这很简单。我只需要将警报处理发送到Selenium而不是Watir。

而不是调用 Watir :: Alert 类:

@browser.alert.ok 

我只需要让Selenium处理它。现在,这在FF和Chrome中都有效:

And(/^the user confirms the alert via selenium$/) do
    popup = @browser.driver.switch_to.alert
    popup.accept
end