我刚刚开始学习Watir ......我坚持这个:
我尝试点击这个javascript弹出窗口的Watir点击(并阅读内容):
http://www.w3schools.com/js/tryit.asp?filename=tryjs_alert
我的Watir代码如下所示:
require 'watir'
b = Watir::Browser.start "www.w3schools.com/js/tryit.asp?filename=tryjs_alert"
b.maximize
b.frame(:name, "view").button(:text, "Show alert box").click
b.javascript_dialog.button('OK').click
..但它不起作用,Watir没有点击弹出窗口上的“确定”按钮。
我知道Watir-Webdriver可以处理弹出窗口(“browser.alert.ok”),但是“经典”的IE-only Watir可以做到这一点(没有任何复杂的黑客,使用AutoIt / Sikuli等)?
编辑:我可以使用此行完全删除弹出窗口:
b.frame(:name, "view").execute_script("window.alert = function() {}")
总比没有好,现在测试不会挂起弹出窗口,但我仍然无法确认/读取弹出窗口......
答案 0 :(得分:0)
看起来在Watir点击按钮打开javascript对话框之后,它正在等待它永远不会得到的东西。
解决方案是点击带有click_no_wait
的按钮。试试这个:
require 'watir'
b = Watir::Browser.start "www.w3schools.com/js/tryit.asp?filename=tryjs_alert"
b.maximize
b.frame(:name, "view").button(:text, "Show alert box").click_no_wait
b.javascript_dialog.button('OK').click
更新:刚刚注意到Watir wiki上记录了这一点 - http://wiki.openqa.org/display/WTR/JavaScript+Pop+Ups(参见第一个例子)。