Similar to my previous issue (Link Here) and many other issues surrounding Selenium's apparent inability to start a new session (Link Here etc) except I have already verified the following:
- Java JDK Version (Unable to Update This): 1.8.0_161
- Chrome version: 103.0.5060.114 (Official Build) (64-bit) (cohort: Stable)
- Chromedriver version: ChromeDriver 103.0.5060.53 (https://chromedriver.storage.googleapis.com/index.html?path=103.0.5060.53/)
Maven Dependencies:
<dependency>
<groupId>com.github.stephenc.monte</groupId>
<artifactId>monte-screen-recorder</artifactId>
<version>0.7.7.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.j2html</groupId>
<artifactId>j2html</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.2</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>7.3.3</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>7.3.3</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
<version>7.3.3</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.0</version>
</dependency>
Maven Command:
mvn test "-Dcucumber.options=--tags '[CUKE-OPTIONS]'" -Denv=[MY-ENV] -DforkCount=0 -DreuseForks=false
When I attempt to run this command; sometimes Chromedriver will start successfully and open a browser correctly; but sometimes I see the following error message:
Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:587)
org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:264)
org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:179)
org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:101)
org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:81)
org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:70)
[MY-PROJECT].chromeStuff(BrowserRunTime.java:187)
[MY-PROJECT].<init>(BrowserRunTime.java:45)
[MY-PROJECT]$Builder.build(BrowserRunTime.java:111)
[MY-PROJECT].StepDefinitions.setupEnvironment(StepDefinitions.java:108)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
io.cucumber.java.Invoker.doInvoke(Invoker.java:66)
io.cucumber.java.Invoker.invoke(Invoker.java:24)
io.cucumber.java.AbstractGlueDefinition.invokeMethod(AbstractGlueDefinition.java:47)
io.cucumber.java.JavaHookDefinition.execute(JavaHookDefinition.java:64)
io.cucumber.core.runner.CoreHookDefinition.execute(CoreHookDefinition.java:46)
io.cucumber.core.runner.HookDefinitionMatch.runStep(HookDefinitionMatch.java:21)
io.cucumber.core.runner.ExecutionMode$1.execute(ExecutionMode.java:10)
io.cucumber.core.runner.TestStep.executeStep(TestStep.java:85)
io.cucumber.core.runner.TestStep.run(TestStep.java:57)
io.cucumber.core.runner.TestCase.run(TestCase.java:78)
io.cucumber.core.runner.Runner.runPickle(Runner.java:75)
io.cucumber.junit.PickleRunners$NoStepDescriptions.lambda$run$0(PickleRunners.java:151)
io.cucumber.core.runtime.CucumberExecutionContext.lambda$runTestCase$5(CucumberExecutionContext.java:129)
io.cucumber.core.runtime.RethrowingThrowableCollector.executeAndThrow(RethrowingThrowableCollector.java:23)
io.cucumber.core.runtime.CucumberExecutionContext.runTestCase(CucumberExecutionContext.java:129)
io.cucumber.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:148)
io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:144)
io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:28)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
io.cucumber.junit.FeatureRunner.run(FeatureRunner.java:137)
io.cucumber.junit.Cucumber.runChild(Cucumber.java:196)
io.cucumber.junit.Cucumber.runChild(Cucumber.java:89)
org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
io.cucumber.junit.Cucumber$RunBeforeAllHooks.evaluate(Cucumber.java:266)
io.cucumber.junit.Cucumber$RunAfterAllHooks.evaluate(Cucumber.java:281)
io.cucumber.junit.Cucumber$StartTestRun.evaluate(Cucumber.java:233)
io.cucumber.junit.Cucumber$FinishTestRun.evaluate(Cucumber.java:248)
org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
org.junit.runners.ParentRunner.run(ParentRunner.java:413)
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:364)
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:272)
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:237)
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:158)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
org.apache.maven.surefire.api.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:167)
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:161)
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:84)
org.apache.maven.plugin.surefire.InPluginVMSurefireStarter.runSuitesInProcess(InPluginVMSurefireStarter.java:87)
org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1295)
org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1159)
org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:932)
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
org.codehaus.classworlds.Launcher.main(Launcher.java:47)
I can't share my code as it is proprietary knowledge to my company; but the general Chromedriver stuff is as follows for "chromeStuff()":
String exePath = System.getProperty(USER_DIR) + "\\src\\main\\resources\\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", exePath);
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(chromeOptions);
driver.get(URL);
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
line BrowserRunTime.java:187 is:
WebDriver driver = new ChromeDriver(chromeOptions);