Как нажать на приглашение onbeforeunload в тесте Watir? - PullRequest
0 голосов
/ 18 ноября 2009

У меня есть веб-страница, на которой есть скрипт 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", всплывающее окно не будет создано, а время теста истечет. Если я использую «щелчок», то создается всплывающее окно, но после его открытия тест зависает.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2018

Это должно сработать, закрыв это предупреждение:

browser.alert.ok 

См. Watir документы здесь .

0 голосов
/ 24 марта 2010

Хотите подтвердить диалоговое сообщение?
Я пробовал ваш код, но не смог найти решение.
Это делается для того, чтобы попытаться перехватить диалог, а затем, когда всплывающее окно, получить сообщение в течение 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
...