最近、Seleniumを使用してDjangoベースのアプリケーションのテストを開始しました。テストはLinux上で正常に動作しますが、Mac OS Xでは失敗するものもあります。両方のケースでFirefoxをブラウザとして使用していますが、2つのケースの重要な違いは、 FFは、フォアグラウンドアプリケーションまたはバックグラウンドウィンドウとして実行されています。 Linuxではどうなりますか?Mac OS X上でSeleniumでテストするときにFirefoxをフォアグラウンドアプリケーションにする方法
- SeleniumはFirefoxにユーザー登録ページを表示します。
- セレンはユーザー名に、は無効の電子メールアドレスを入力します。
- Seleniumは、電子メールアドレスフィールドから同じページの別のフィールドにフォーカスを変更します(これは検索ボックスになりますが、重要ではありません---重要なのはフォーカス変更イベントです)。
- ウェブページのJavascript検証コードは、電子メールアドレスが無効で、ページにエラーメッセージが挿入されたことに気付いています。
- Seleniumがエラーメッセージを検出し、テストが合格とマークします。私たちは、Mac OS X上で実行すると
、しかし、ステップ#4は、テストが実行されている間、私たちはバックグラウンドでそれを残せば、我々は手動である(--- Firefoxのウィンドウをフォアグラウンドない限り発生しません。ブラウザのJavascriptはフォーカスの変更イベントを取得しないため、エラーメッセージはページのDOMに挿入されないため、Seleniumはそれを待ってタイムアウトし、テストは失敗します。
テストが実行されたときにブラウザをフォアグラウンドでフォアグラウンドにすることができるので、Javascriptは必要なときにイベントを受け取ることができますか?もしそうなら、どうですか?
使用しているコードを正確に投稿できますか? – Amey