Webドライバーを作成するためのこのコードがあります。
これで、ドライバーを1つずつ作成すると、このコードは正常に機能します。
これらのドライバーを複数のスレッドで作成すると、問題が発生します。
public static WebDriver getConfiguredWebDriver(.....)
WebDriver driver = null;
DesiredCapabilities cap = new DesiredCapabilities();
if(ffp != null) {
ffp.setPreference("general.useragent.override", getRandomizedUASettings(rand, UserAgentList));
}
driver = new FirefoxDriver(null, ffp, cap);
//driver = new FirefoxDriver(); also gives an error of the same kind during multithreading
return driver;
}
このエラーが発生します
"Thread-4" org.openqa.selenium.WebDriverException:ポート7057でバイナリFirefoxBinary(C:\ Program Files(x86)\ Mozilla Firefox \ firefox.exe)に接続できませんでした。プロセス出力は次のとおりです。nullビルド情報:バージョン: '2.28.0'、リビジョン: '18309'、時間: '2012-12-11 20:21:45'システム情報:os.name:'Windows 7'、os。 arch:'amd64'、os.version: '6.1'、java.version: '1.6.0_26'
スレッドコードは
while(...) {
....... //
FirefoxProfile ffp = new FirefoxProfile();
DataEntryThread t = new DataEntryThread(parentFrame, lead, new ProxySettings(proxySettings), ffp, UserAgentList);
t.start();
....... //
}
エラーは任意のスレッドでランダムに発生し、ポート番号でも発生します。ここで何が問題になっていますか?異なるスレッドに複数のFirefoxドライバーをロードするにはどうすればよいですか?