2012-04-22 9 views
2

Selenium WebDriverはマルチスレッドをサポートしていますか?セレンのwebdriver C#マルチスレッド

私はいくつかのウィンドウを開いて2〜4で使用しようとしており、ブラウザウィンドウ(Firefox)が時々フリーズするようです。

1つのスレッドが開始されます。

_driver.FindElement(By.Id(id)).SendKeys("MyMessage"); 

をすると同時に、別のスレッドが別のページ要素の状態を取得しようとします。

これはどのように対処するのですか?

異なるスレッドから同じページにアクセスすることについての推奨はありますか?

SendKeysメソッドを高速化し、SendKeysがまだ終了していないときにセレンがページにアクセスするのを防ぐ方法を教えてください。

答えて

2

私の経験では、Selenium WebDriverはマルチスレッディングを非常にうまくサポートしています(IEを使用していない限り)。 コードから、すべてのスレッドで同じドライバインスタンスを使用しているように見えます。各スレッドに独自のWebDriverインスタンスがあることを確認してください。

+1

それでも問題が解決しない場合は、単純投票の代わりに理由を述べてください。それは私たち全員の学習プロセスです。 – Anders

+0

それは価値があるため、私は同じ問題を抱えて作業しています。私は別のWebDriverインスタンス(および/またはthreadstaticフィールド)を使用してこの作業を試みました。これまでのアプローチでは、a)複数のスレッドで複数のWebDriverサーバーを起動しようとすると、AccessViolations(IE)とSelenium例外(FF)が発生していました。私は、成功したアプローチは、共有サーバーインスタンスをインスタンス化する必要があり、すべてのスレッドのドライバインスタンスをポイントする必要がありますが、私はまだそれを働かせていないと思う。 –

+0

興味深い - 私がマルチスレッドのWebDriverシナリオを実行してからしばらく時間がかかりました。あなたのご意見ありがとうございます、私はいくつかの掘削を行い、私はそれが再び働くことができるかどうかを確認します。 – Anders

関連する問題