1

私は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はポップアップウィンドウの[OK]ボタンをクリックしていません。

Watir-Webdriverがポップアップウィンドウ( "browser.alert.ok")を処理できることは知っていますが、「クラシック」IEのみのWatirがこれを実行できます(複雑なハックなしで、AutoIt / Sikuliなどを使用)?

編集:私はこの行でポップアップウィンドウを完全に削除することができました:

b.frame(:name, "view").execute_script("window.alert = function() {}")

何もないよりはましですが、テストはポップアップウィンドウにハングしませんが、ポップアップウィンドウを確認/読み取ることができません...

4

1 に答える 1

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 (最初の例を参照)。

于 2012-07-25T12:55:52.230 に答える