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
}
Ich versuche runService() in mehreren Threads parallel auszuführen. Die Methode getDriver() gibt eine neue Instanz von Selen WebDriver zurück. Wenn ich für eine einzelne Plattform ausführe, laufen alle Selenium-Operationen erfolgreich, aber wenn derselbe Code für mehrere Plattformen abgefeuert wird, obwohl für jede Plattform eine neue Browser-Instanz geöffnet wird, erhalte ich viele Fehler bei Selenelementen, die nicht gefunden werden. Was kann der Grund dafür sein? Besteht ein Problem darin, mehrere Browser-Instanzen gleichzeitig durch Selenium laufen zu lassen?Selenium Mehrere Browserinstanzen parallel ausführen