9

私が試したコードはどれも影響がないようです。私の意図は、「OK」ボタンを押すことによって表示される可能性のあるすべてのJavaScriptプロンプトを閉じることです。問題は、私のスクリプトが表示されるプロンプトに影響を与えないことです。言い換えれば、それは何もしません。

これが私が持っているものです:

fx = FireWatir::Firefox.start(somepage)
fx.startClicker("OK")
fx.button(:id, "OK").click
fx.button(:id, "CONFIRM").click

HTML:

<script type="text/javascript">
    alert("Alert!");
    window.confirm("Confirm?");
</script>

プロンプトのテキストは変更される可能性があります。アラート/確認プロンプトの内容に関係なく、[OK]をクリックするつもりです。

PS:私はUbuntuを実行しています。

4

5 に答える 5

6

最善の方法は、ポップアップがトリガーされないようにすることです。

require 'watir'
b = Watir::Browser.start "http://somepagewithdialogs"
# don't return anything for alert
b.execute_script("window.alert = function() {}")

# return some string for prompt to simulate user entering it
b.execute_script("window.prompt = function() {return 'my name'}")

# return null for prompt to simulate clicking Cancel
b.execute_script("window.prompt = function() {return null}")

# return true for confirm to simulate clicking OK
b.execute_script("window.confirm = function() {return true}")

# return false for confirm to simulate clicking Cancel
b.execute_script("window.confirm = function() {return false}")

# interact with some element which would trigger the pop up
b.button(:id => "dialogTrigger").click

詳細については、 http : //watirmelon.com/2010/10/31/dismissing-pesky-javascript-dialogs-with-watir/ を参照してください。

于 2010-12-02T10:12:25.220 に答える
0

fx.button(:id、 "OK")。clickの待機状態が変更されたと思います。
ただし、javascriptダイアログは状態を変更しません。
だからあなたのwatirは永遠に待っているでしょう。
そうでなければ、わかりません。

アクションは状態を変更せず、決して返しません。
したがって、クリックする必要があります。
watir(firewatirではない)を使用する場合、@ ie.button(:id、'OK')。click_no_wait。
次に、ポップアップが表示されるまで1〜3秒待ちます。
その後、あなたが好きなように。
さらに、msg-box(popup)を制御したい場合は、AutoITを実行する必要があります。-これは、msg-boxを待機し、[OK]をクリックしてIEポップアップを表示するためのサンプルです--

autoit=WIN32OLE.new('AutoItX3.Control')
autoit.WinWait('Windows Internet Explorer')
autoit.WinActive('Windows Internet Explorer')
autoit.ControlClick('Windows Internet Explorer','','OK')

私はあなたが何を意味するのか完全に理解していない可能性があります。もしそうなら、これを無視してください。

于 2010-03-24T18:22:50.817 に答える
0

/var/lib/gems/1.8/gems/firewatir-1.6.5/unittests/html/JavascriptClick.html を確認してください (そこに firewatir gem がインストールされていると仮定します)。私はテストを実行しましたが、うまくいきました。テストを読むと、startClicker がどのように機能するかについての洞察が得られるかもしれません。

于 2010-03-31T20:46:10.897 に答える
0

ポップアップは私にとって黒魔術です。ここから解決策を試しましたか?

watir-generalに質問を投稿することもお勧めします。

于 2010-02-16T11:49:27.030 に答える