2017-03-27 8 views
0

ラジオボタンを選択するテストがあり、[モーダルダイアログ/アラートボックス]ポップアップをトリガーする[削除]ボタンをクリックする。ステップがどのように動作するか私はここにキュウリを使用していFirefoxでアラートが確認されたが、何も起こらない

です:私は、これはブラウザ/ドライバの問題かもしれ考えていたので、私はその怠惰なデバッグ段階で入れ

When /^i confirm the alert$/ do 
     Watir::Wait.until(timeout: 10) {@browser.alert.exists?} 
     puts "i see the alert" 
     @browser.alert.ok 
end 

私はこの作業をChromeで行っていましたが、この特定のスクリプトでは特定の環境ではオプションではありません。

のFirefoxは私の唯一のオプションであり、ここでは何が起こるかです:

  • 「私は警告が表示が」
  • 返されたダイアログが

上で確認され、その後、私は見つけることができませんを受け取ります警告(Watir :: Exception :: UnknownObjectException)

Firefox 45 ESR/Selenium Webdriver 3.0.5

Firefox/Seleniumの互換性の問題であるかどうかは不明ですか?

OKボタンの後に何もしないアプリケーションは、あなたがワチール6.2.1使用していることを確認し、アラート

+0

問題を再現する(最小限の)HTML/jsを提供できますか? FFをアップグレードし、最新の 'geckodriver'を使用する場合、同じ問題が存在しますか? – orde

答えて

0

修正を見つけました!そして、それはとても簡単でした。 Watirの代わりにSeleniumに警告処理を送信するだけでした。

代わりのワチール::アラートクラスを呼び出す:私はちょうどセレンがそれを処理させるために必要な

@browser.alert.ok 

を。これはFFとChromeの両方で現在動作しています:

And(/^the user confirms the alert via selenium$/) do 
    popup = @browser.driver.switch_to.alert 
    popup.accept 
end 
+1

あなたはセレンコードにアクセスしていますが、alert.okが実際に追加のチェックでそのコードにアクセスしているため、アクセスする必要はありません。コードを見てください 'ok ok wait_for_exists @ alert.accept @ browser.after_hooks.run end' – RAJ

1

にクリックされます。あなたのためにこの問題を修正する可能性のあるバグ修正がありました。

+0

私の6.1.0 watir gemを更新しました。そこには運がない。それは単なる奇妙です。アラートの確認アクションはChromeで機能し、アプリケーションに正しいメッセージを表示しますが、FFでは確認操作が行われていないようです。 – partydog

+0

いいえ、いくらか意味がありますが、FirefoxはChromeとはわずかに異なるアラートを処理します。あなたのコードに 'Selenium :: WebDriver.logger.level =:info'を設定して、出力の要点を投稿してください。 – titusfortner

+0

@partydog実際には6.1.1ではなく6.2.1で修正されました。はい、chromeでは動作しますが、Firefoxでは動作しません。 6.2.1に更新して確認してください。 – Gopal

関連する問題