Watir webdriver內(nèi)置了如何處理javascript. dialog的方法,以及從dialog獲得所需值的方法。
# 判斷alert是否存在
browser.alert.exists?
# 獲得alert的值
browser.alert.text
# 關(guān)閉alert
browser.alert.ok
browser.alert.close
# 接受confirm
browser.alert.ok
# 取消confirm
browser.alert.close
# 輸入內(nèi)容到prompt
browser.alert.set "Prompt answer"
# 接受prompt
browser.alert.ok
# 取消prompt
browser.alert.close
如果上述方法無(wú)效,我們還有一些替代的方法:
# 對(duì)于alert,overide從而使其不返回任何值
browser.execute_script("window.alert = function() {}")
# 返回用戶(hù)在prompt輸入的值
browser.execute_script("window.prompt = function() {return 'my name'}")
# 返回空值,用于模擬點(diǎn)擊prompt的cancel
browser.execute_script("window.prompt = function() {return null}")
# 返回true,用于模擬模擬點(diǎn)擊confirm的ok
browser.execute_script("window.confirm = function() {return true}")
# 返回false,用于模擬點(diǎn)擊confirm的cancel
browser.execute_script("window.confirm = function() {return false}")
# 對(duì)于離開(kāi)popup不返回任何值
browser.execute_script("window.onbeforeunload = null")