JS弹出框
在web应用中,JavaScript对话框是十分常见的。
Watir-WebDriver内建了处理这些对话框的方法,并且可以返回对话框中显示的内容。首先,加载这个扩展:
require "watir-webdriver/extensions/alerts"
JAVASCRIPT ALERTS
browser.alert do
browser.button(:value => 'Alert').click
end #=> 'the alert message'
JAVASCRIPT CONFIRMS
browser.confirm(true) do
browser.button(:value => 'Confirm').click
end #=> 'the confirm message'
JAVASCRIPT PROMPT
browser.prompt('hello') do
browser.button(:value => 'Prompt').click
end #=> { :message => 'foo', :default_value => 'bar' }
可选方法
如果你使用上面的方法时遇到了麻烦,你可以自行覆盖JavaScript functions,这样一来原来应该显示的对话框就可以在触发时不显示了。
# 使alert方法返回空
browser.execute_script("window.alert = function() {}")
# 使prompt返回特定的字符串,用来模拟用户的输入
browser.execute_script("window.prompt = function() {return 'my name'}")
# 使prompt方法返回null用来模拟用户点击了Cancel(取消)按钮
browser.execute_script("window.prompt = function() {return null}")
# 使confirm方法返回true用来模拟用户点击了OK(确定)按钮
browser.execute_script("window.confirm = function() {return true}")
# 使confirm方法返回false用来模拟用户点击了Cancel(取消)按钮
browser.execute_script("window.confirm = function() {return false}")