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}")

Published: July 06 2013

blog comments powered by Disqus