0
if (platform != null) {
for (final String p : platform) {
log.info("Platform " + p);
executorService.submit(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
runService(p, config, url, title, report);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
executorService.shutdown();
executorService.awaitTermination(Long.MAX_VALUE,
TimeUnit.NANOSECONDS);
// for(final String p: platform){
// runUIService(p, config, url, title, report);
// }
}
public void runService(){
WebDriver driver = getDriver();
//some selenium operations performed
}
runService()を複数のスレッドで並列実行しようとしています。 getDriver()メソッドは、selenium WebDriverの新しいインスタンスを返します。単一のプラットフォームに対して実行すると、すべてのセレン操作は正常に実行されますが、複数のプラットフォームで同じコードが実行されても、各プラットフォームで新しいブラウザインスタンスが開かれても、セレン要素が見つからないというエラーが発生します。私はこれの理由が何であるか把握できません。同時にセレンを介して複数のブラウザインスタンスを実行することに関連する問題はありますか?Selenium複数のブラウザインスタンスを並列に実行する