When running tests in parallel sometimes I get this message:
org.openqa.selenium.NoSuchSessionException: invalid session id
I'm using WebDriverManager:
private WebDriver driver;
static { WebDriverManager.chromedriver().setup(); }
public Browser() {
Map<String, Object> prefs = new HashMap<>();
ChromeOptions chromeOptions = new ChromeOptions();
if (GVDLUtils.isOnServerEnv()) {
System.out.println("working on server");
chromeOptions.addArguments("--window-size=1400,900");
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--no-proxy-server");
chromeOptions.addArguments("--proxy-server='direct://'");
chromeOptions.addArguments("--proxy-bypass-list=*");
}
String FilesPath = System.getProperty("user.dir") + File.separator + SeleniumUtilities.getDownloadsPath();
prefs.put("download.default_directory", FilesPath);
chromeOptions.setExperimentalOption("prefs", prefs);
this.driver = new ChromeDriver(chromeOptions);
if (!GVDLUtils.isOnServerEnv()) {
this.driver.manage().window().maximize();
}
}
And I initiate new browser before each test:
public static String redux = "";
protected Browser browser;
@BeforeMethod
public void initTest() {
this.browser = new Browser();
JavascriptExecutor jse = (JavascriptExecutor) this.browser.getDriver();
jse.executeScript("localStorage.setItem('redux', '"+redux+"')");
}
Any ideas why it happens?