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操作都会成功运行,但如果为多个平台触发相同的代码,尽管为每个平台打开了一个新的浏览器实例,我在找不到的selenium元素时会遇到很多错误。我无法确定这可能是什么原因?是否存在与通过selenium同时运行多个浏览器实例相关的问题?
答案 0 :(得分:0)
我认为这是一个并发问题。 您是否尝试过使用synchronized关键字作为方法? 即 public synchronized void runService()
或在你的getDriver()方法中。
希望这可以提供帮助。