0

現在のページから移動するアクションをユーザーが実行したときにユーザーにプロンプ​​トを表示するonbeforeunloadスクリプトを含むWebページがあります。

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")

問題は、「クリックして待つ」を使用すると、ポップアップが作成されず、テストがタイムアウトすることです。「クリック」を使用するとポップアップが作成されますが、開いた後にテストがハングします。

助言がありますか?

4

2 に答える 2

0

ダイアログ メッセージをアサートしますか?
あなたのコードを試してみましたが、解決策が見つかりませんでした。
これは、ダイアログをキャッチしてから、ポップアップ時に 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
于 2010-03-24T19:12:55.850 に答える