我看了一下这里:http://wiki.openqa.org/display/WTR/JavaScript+Pop+Ups
每个解决方案都适用于 Windows 上的 IE。我在 Mac 上使用 Firefox。有没有办法单击 JavaScript 警报框的“确定”?
最佳答案
正确处理警报和提示仍然是being worked on在WebDriver中,但常见的解决方法是使用execute_script()覆盖窗口函数,即
browser.execute_script("window.alert = function(msg) { window.lastAlert = msg; }")
browser.button(:id => "trigger-alert").click
browser.execute_script("return window.lastAlert") #=> "the message"
由于我想避免一堆猴子补丁(Watir 社区中的常见问题),所以我添加了一些 helper methods作为可选要求 - 在下一个版本之后您应该能够执行以下操作:
require "watir-webdriver/extensions/alerts"
browser.alert do
browser.button(:id => "alert").click
end #=> "the alert message"
browser.confirm(true) do
browser.button(:id => "confirm").click
end #=> "the confirm message"
browser.prompt("returned value") do
browser.button(:id => "prompt").click
end #=> { :message => "foo", :default => "bar" }
请注意,这是暂时的,当 WebDriver 中的问题得到解决后,该 API 可能会在将来被删除。
更新:
现已实现正确的警报处理。上面的例子现在可以这样完成:
browser.button(:id => "alert").click
browser.alert.ok
browser.button(:id => "confirm").click
browser.alert.ok # or browser.alert.close
browser.button(:id => "prompt").click
alert = browser.alert
alert.text #=> "foo"
alert.ok
关于macos - Waitr Webdriver 中的警报框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652582/