web-dev-qa-db-ja.com

Seleniumは1つのブラウザでマルチスレッドを使用できますか?

マルチスレッドでWebをテストしたいのですが、あまりにも多くのchromedriverを開くと、メモリを使いすぎます。 1つのブラウザーでマルチスレッドを使用できますか?

19
Roy

WebDriverはthread-safeではありません。スレッドセーフの問題はコードではなく、実際のブラウザーバインディングにあります。彼らはすべて、一度に1つのコマンドしかないと想定しています(たとえば、実際のユーザーのように)。しかし、一方で各スレッドに対して1つのWebDriverインスタンスをインスタンス化できますが、より多くのメモリを消費する複数のブラウザを起動します...

これがあなたの助けになることを願っています...質問がある場合は親切に戻ってください

19
Vicky

Webdriver自体はシングルスレッドであるため、マルチスレッドはWebdriverの異なるインスタンスで実行する必要があります。

同じWebdriverで異なるスレッドを実行できますが、テストの結果は期待したものにはなりません。説明させてください。

マルチスレッドを使用して異なるタブで異なるテストを実行する場合(不可能ではない、少しコーディングが必要です)、クリックやキーの送信などのアクションは、テストに関係なく現在フォーカスされている開いているタブに移動しますランニング。つまり、目的のタブではなく、フォーカスがある同じタブですべてのテストが同時に実行されます。

Webdriverのマルチスレッド について読むことができます。

13
Manu