0

.net selenium webdrivers を使用する際に、それぞれが異なる特定の webdriver に対して、2 つの主な問題に遭遇しました。

以下の表は、Chrome と Firefox の Web ドライバーが不十分な問題を示しています。

ここに画像の説明を入力

RellYa の selenium jquery extensionsを使用しています。

Chrome webdriver がランダムにjQuery not found例外をスローします。何回かやってみると、最終的には成功します。

Firefox の Web ドライバーでは、これは決して起こりませんでした。一方、firefox は

Unable to bind to locking port 7054 within 45000 ms

調査によると、この背後にある理由は、別の Firefox Web ドライバーを閉じていない/終了していないままにしておく必要があるためです。しかし、これは、セレンを使用してマルチスレッドでWebタスクを自動化することを無効にします。つまり、いくつかのスレッドが開かれた後、何らかの制限に達したようで、開いている Web ドライバーの 1 つが閉じるのを待ちます。

実際、このfirefox webdriver のドキュメントから、1 つのインスタンスのみが実行されていることが明確になっています。彼がマルチスレッドを念頭に置いていた場合、何をすべきでしょうか?

特定の webdriver 実装ごとに、表に示されている問題に対する実用的な解決策はありますか?

4

1 に答える 1

1

いいえ、Firefox、Chrome などの複数のインスタンスをマシンから一度に実行できます。「Selenium Grid」について調べてみると、そのように設計されていることがわかります。

そう:

  1. firefox で「バインドできません」というメッセージが表示されるのは、別のドライバーがポートをロックしていることが原因ではありません。各ドライバー インスタンスは、独自の開いているポートで開始します。

  2. Selenium Grid を使用していないか、グリッドを使用しておらず、自分でマルチスレッドを処理しようとしている場合は、テスト ランナーの @Configuration フェーズでブラウザーを開いたり閉じたりする方法に注意してください。

  3. 経験に基づいた推測として、不安定な場合は、古いバージョンの Selenium で新しいブラウザーを制御しようとしている可能性が高いですか? サンプルプロジェクトなど、質問に関する詳細情報が必要です。

于 2015-07-30T14:40:55.243 に答える