Watir webdriver内置了如何处理javascript. dialog的方法,以及从dialog获得所需值的方法。
# 判断alert是否存在 browser.alert.exists? # 获得alert的值 browser.alert.text # 关闭alert browser.alert.ok browser.alert.close
# 接受confirm browser.alert.ok # 取消confirm browser.alert.close
# 输入内容到prompt browser.alert.set "Prompt answer" # 接受prompt browser.alert.ok # 取消prompt browser.alert.close
如果上述方法无效,我们还有一些替代的方法:
# 对于alert,overide从而使其不返回任何值 browser.execute_script("window.alert = function() {}") # 返回用户在prompt输入的值 browser.execute_script("window.prompt = function() {return 'my name'}") # 返回空值,用于模拟点击prompt的cancel browser.execute_script("window.prompt = function() {return null}") # 返回true,用于模拟模拟点击confirm的ok browser.execute_script("window.confirm = function() {return true}") # 返回false,用于模拟点击confirm的cancel browser.execute_script("window.confirm = function() {return false}") # 对于离开popup不返回任何值 browser.execute_script("window.onbeforeunload = null")