私はwatir-webdriverを使ってWebアプリケーションのテストを実行しています。watir-webdriverを使用してjsアラートを待っています
このページは、確認の後にページチャーンとアラートの入力変更に応答します。
** UPDATE **
私は次のことを試してみましたが、私は確認ブロックで始まりSelenium::WebDriver::Error::UnhandledAlertError
を取得します。
require "watir-webdriver/extensions/alerts"
b.alert do
b.confirm(true) do
b.checkbox(:index => 1).set
end
end
** ENDのUPDATE **
しかし追加(入力変更後)以下:
browser.driver.switch_to.alert.accept
は最初の確認には問題を却下しません...
残念ながら、ページチャーンが同じ行を試行して次のアラートを閉じるようにすると、
Selenium::WebDriver::Error::NoAlertPresentError
アラートはまだ発生していません。
私の回避策は、ワチール::ブラウザ
def get_alert (timeout = 300)
Watir::Wait.until(timeout) {
begin
driver.switch_to.alert
rescue Selenium::WebDriver::Error::NoAlertPresentError
end
}
end
に次のメソッドを追加して行うためのより良い/ビルトイン方法はあり
browser.get_alert
を通じて取り扱うすべてのアラートを実行することですこの?私の
** UPDATE **
一つの利点仕事は、周りにそれは私がb.alert/b.confirm内のブロックを読み(または生成)するのは難しいとの手続きではなく、警告を処理することができますされ
事前に** ENDのUPDATE **
おかげで、 ARTH
注意を。上記の例は、「Confirm」という値のボタンを持つテスト用HTMLページを使用するrspecテストからのものです。このボタンをクリックすると、確認の警告が表示されます。そのコード行は、あなたのケースで確認ダイアログを表示するアクションに変更する必要があります。 –
ありがとうございます...しかし、多分私はダイアログページを知っており、このアプローチを成功させずに試みたことを明確にしておくべきでした。 私は私の言葉で言及したように、私は確認、その後にページの読み込みが続き、さらに多くの問題を引き起こしている警告が続きます。私はこれをもっと明確にするためにそれを更新します... – Arth