如何在Watir测试中点击onbeforeunload提示?

时间:2009-11-18 20:06:08

标签: watir onbeforeunload

我有一个网页,其中有一个onbeforeunload脚本,当用户采取可以离开当前页面的操作时会提示用户。

如何使用Watir与此弹出窗口进行交互?我目前的方法如下:

$ie.link(:text, 'Dashboard').click_no_wait

hwnd = $ie.enabled_popup(10)
assert(hwnd, 'The expected \'leave this page?\' popup was not shown')

win = WinClicker.new
win.makeWindowActive(hwnd)
win.clickWindowsButton_hwnd(hwnd, "OK")

问题是,如果我使用“click no wait”,则不会创建弹出窗口,并且测试会超时。如果我使用“click”,则会创建弹出窗口,但测试在打开后会挂起。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您想断言对话框消息吗?
我尝试了你的代码,却找不到解决方案 这是为了尝试捕捉对话框然后弹出,获得msg而5秒。每1秒轮询一次。

$ie.link(:text, 'Dashboard').click_no_wait
@autoit = WIN32OLE.new('AutoItX3.Control')
  5.times do
    if @autoit.WinWait('Windows Internet Explorer','',1)==1 then
      @autoit.WinActivate('Windows Internet Explorer',"")
      @dialog_text = @autoit.WinGetText('Windows Internet Explorer',"")
      dialog_pop = "YES"
      break
    else
      sleep(1)
      dialog_pop = "NO"
    end
  end

答案 1 :(得分:0)

这应该可以解决此警报:

browser.alert.ok 

请参阅Watir docs here