2016-12-16 10 views
1

C#でSeleniumを使用してChromeでWebアプリケーションを自動化しています。私は、この自動化を高速化するために、互いに独立した自動化をトリガーする別々のコードベース(exeコピー)を作成しました。それぞれのexeがChromeを起動して自動化を起動しますが、「ChromeDriver.exeが動作しなくなりました」というWindowsのポップアップメッセージが表示されることがあります。これは、chromedriver.exeが各インスタンスによってトリガーされている別々のコードベースの下に置かれているので、発生しません。また、私は各インスタンスに対してクロムドライバを適切に処分しています。 1つのインスタンスを実行すると正常に動作します。同じマシンで複数のSeleniumドライバインスタンスを実行する

確認したい詳細やコードスニペットを教えてください。

おかげで、 Souvik

答えて

3

あなたは、同時に複数の自動化を実行したい使用IWebDriver

EXの複数のインスタンスとスレッド場合:

public void Work() 
{ 
IWebDriver driver = new ChromeDriver("D:\\Drivers"); 
driver.Navigate().GoToUrl(URL); 
\\Do the rest 
} 
public void Work2() 
{ 
IWebDriver driver = new ChromeDriver("D:\\Drivers"); 
driver.Navigate().GoToUrl(URL2); 
\\Do the rest 
} 

と、このような関数を呼び出します:

Thread thread1 = new Thread(new ThreadStart(Work)); 
thread1.Start(); 
Thread thread2 = new Thread(new ThreadStart(Work2)); 
thread2.Start(); 
+0

私はこのアプローチを考えましたが、残念なことにコードはスレッディングによって破損するような方法で設計されています。スレッド化を使用して実行するには、多くの変更が必要です。他の代替アプローチはありますか? –

+0

私は前に同じ問題に直面していましたが、これは私が残念なことに見つけた唯一の解決策です –

関連する問題