これはSeleniumを使用するときに人々が直面する一般的な問題であるという印象を受けましたが、この質問を見つけただけで驚きました。この質問は、古いバージョンのSeleniumのみを対象としており、これまでのところうまくいかなかった、大雑把な「スリープ待機」を配置することを提案しています。
私の問題が何であるかについての素晴らしい説明は、次のブログ投稿で詳細に見つけることができます。
簡単に言うと、散発的に見えるときにSelenium WebDriverを使用してリモートテストを実行すると、いくつかのテストが停止します。ストールとは、ブラウザウィンドウが閉じ、ドライバ(この場合はIEDriverServer)が手動で強制終了されるまで無期限に実行され続けることを意味します。
誰かが回避策を見つけたのか知りたいですか?この「 URLからの応答がない」例外が最初に発生したときにWebDriverプロセスを強制終了するか、完全に回避する必要があります。現在、ブラウザは閉じていますが、リモート接続を介して手動で閉じるまでドライバはハングします。
その他の潜在的に有用な情報:
- テストは一般的にIE7で実行されており、 IE8で実行されることもあります (7ではより頻繁に停止するように見えますが、これは偶然の一致であり、データでバックアップすることはできません)。
- ストールはビルドごとに異なるテストで発生しますが、ストールするテストはテストスイート全体のサブセットです。
- Windows2008R2サーバーに展開されたページにアクセスしているXPクライアントマシンでテストを実行しています。これらのマシンは同じラボ管理環境(2010)にあります。
- しばらくの間、私は失速するテストを受けていませんでした。ただし、ソリューションへのチェックインがないため、テストが断続的に停止し始めています。
- 私はC#でテストを作成しており、IEDriverServer.exeでSelenium .NET Bindings、WebDriver2.28.0を使用しています。
- テストは、テストコントローラーと通信するQTAgent.exeプロセスを使用して、クライアント上のTestAgentを介して実行されます。
私が試みたいくつかの重要なこと:
- ログに報告するjavascriptエラー検出器を実装しました(停止したテストでは空になります)。
- 要素に対するすべてのアクションの前に、waitForElementToExist呼び出し(最大5秒)があります。
- テストはローカルで停止しません。
- テストでは、一見問題のある領域の周りで余分な睡眠が待機します。
- 環境のレクリエーション。
または、テストの停止を防ぐための直接的な回避策がない場合は、停止したテストを強制終了するソリューションも回答として歓迎されます。