0

そのため、特定のテスト ケースでは、私のアプリケーションは、その月にこれ以上文字を書くことができないことを示す JavaScript ポップアップを表示し、Watir の自動化を中断します。

Watirを使用してjavascriptポップアップをキャッチし、[OK]ボタンをクリックして先に進む方法はありますか?

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

# Send New Letter
browser.link(:class,'new-message-button').click
browser.frame(:id,'letterText_ifr').click

javascript_dialog.button('OK').click # <= I need help here with conditional

browser.send_keys 'This is a test'
browser.button(:id,'send-button').click
browser.link(:id,'sign_out').click
4

4 に答える 4

2

JS ダイアログがここにあることを期待し、(それが失敗した場合) レターを送信するコードでそれをレスキューするようなことを試みたらどうなるでしょうか?

browser.frame(:id,'letterText_ifr').click_no_wait
begin
  javascript_dialog.button('OK').click # <= I need help here with conditional
rescue
  browser.send_keys 'This is a test'
  browser.button(:id,'send-button').click
end
browser.link(:id,'sign_out').click

あまりエレガントではありませんが、必要なことはできるかもしれません

于 2012-04-30T19:02:00.747 に答える
1

誤解しているかもしれませんが、明らかな答えは次のようになります。

javascript_dialog.button('OK').click if javascript_dialog.button('OK').exists?
于 2012-05-01T01:53:53.870 に答える
1

ダイアログが表示される時間がランダムではなく、非常によく知られている/定義されている場合は、次のいくつかを使用できます。

until javascript_dialog.button('OK').exists? do 
    sleep 1 
end 
javascript_dialog.button('OK').click

また

sleep 1 until javascript_dialog.button('OK').exists?
javascript_dialog.button('OK').click

また

javascript_dialog.button('OK').when_present.click

また

javascript_dialog.button('OK').wait_until_present
javascript_dialog.button('OK').click
于 2012-05-10T09:39:23.033 に答える
0

JavaScriptポップアップのボタンをクリックしようとするとすぐに、Rubyはブラウザーのフォーカスを失い、クラッシュしました。

エラーを無視してサインアウトし、まだ手紙を送っていない可能性のある別の個人でテストを再実行することになりました。(4月30日は今週以内なので、アラートが表示されます)以下の新しいコードを参照してください。

if browser.text.include?('30-Apr')
  browser.link(:id,'sign_out').click
else
  browser.send_keys 'This is a test'
  browser.button(:id,'send-button').click
end
于 2012-05-02T16:41:10.420 に答える