代码之家  ›  专栏  ›  技术社区  ›  Seth Petry-Johnson

如何在Watir测试中点击onbefore卸载提示?

  •  0
  • Seth Petry-Johnson  · 技术社区  · 15 年前

    我有一个网页,它有一个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")
    

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

    有什么建议吗?

    2 回复  |  直到 15 年前
        1
  •  0
  •   tknv    14 年前

    是否要断言对话消息?

    这是试图捕捉对话框,然后当弹出,得到消息,而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
    
        2
  •  0
  •   Mark Duivesteijn    6 年前

    browser.alert.ok 
    

    Watir docs here .