appium/java-client

org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.

KritikaSahare1611 opened this issue · 2 comments

Description

getting org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.

Environment

  • Java client version - 9.1.0
  • Appium server version - 1.22.0
  • Desktop OS/version used to run Appium if necessary: browserstack

getting error : org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Host info: host: 'TECHNOLOGY-KRIT', ip: '10.50.1.66'
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:536)
at io.appium.java_client.AppiumDriver.startSession(AppiumDriver.java:268)
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:161)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:90)
at io.appium.java_client.AppiumDriver.(AppiumDriver.java:102)
at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:109)
at com.healthkart.hkAutomation.browser.BrowserFactory.launchBrowser(BrowserFactory.java:29)
at com.healthkart.extentReportUtil.ExtentReportingBaseUtil.setup(ExtentReportingBaseUtil.java:282)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:62)
at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:385)
at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:321)
at org.testng.internal.TestInvoker.runConfigMethods(TestInvoker.java:700)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:527)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:824)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)

I am using following pom.xml

4.0.0

<groupId>com.healthkart</groupId>
<artifactId>hkAutomation</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>


<name>hkAutomation</name>
<url>https://healthkart.com</url>

<properties>
	<!--suppress UnresolvedMavenProperty -->
	<reportsDirectory>./test-output/${timestamp}</reportsDirectory>
	<!-- <testFailureIgnore>true</testFailureIgnore> -->
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

	<maven.compiler.source>1.8</maven.compiler.source>
	<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<profiles>
	<profile>
		<id>Base configuration</id>
		<activation>
			<activeByDefault>true</activeByDefault>
		</activation>
		<build>
			<defaultGoal>install</defaultGoal>
			<plugins>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.19.1</version>
					<inherited>true</inherited>
					<executions>
						<execution>
							<phase>test</phase>
							<goals>
								<goal>test</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<suiteXmlFiles>
							<!--suppress UnresolvedMavenProperty -->
							<suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
						</suiteXmlFiles>
						<!-- <testErrorIgnore>true</testErrorIgnore> <testFailureIgnore>true</testFailureIgnore> -->
					</configuration>
				</plugin>
				
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-report-plugin</artifactId>
					<version>2.20.1</version>
					<configuration>
						<showSuccess>true</showSuccess>
					</configuration>
				</plugin>

			</plugins>
		</build>
	</profile>
</profiles>

<dependencies>

	<dependency>
		<groupId>io.appium</groupId>
		<artifactId>java-client</artifactId>
		<version>9.1.0</version>
	</dependency>
	
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-java</artifactId>
		<version>4.17.0</version>
	</dependency>


	<dependency>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-surefire-report-plugin</artifactId>
		<version>2.20.1</version>
		<type>maven-plugin</type>
	</dependency>

	<!-- <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> 
		<version>3.8.1</version> </dependency> -->

	<dependency>
		<groupId>org.testng</groupId>
		<artifactId>testng</artifactId>
		<version>7.4.0</version>
	</dependency>


	<dependency>
		<groupId>org.apache.poi</groupId>
		<artifactId>poi-ooxml</artifactId>
		<version>3.9</version>
	</dependency>

	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.6</version>
	</dependency>

	<dependency>
		<groupId>com.aventstack</groupId>
		<artifactId>extentreports</artifactId>
		<version>5.0.8</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-api</artifactId>
		<version>1.7.25</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/io.appium/java-client -->

	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-io</artifactId>
		<version>1.3.2</version>
	</dependency>



	<!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
	<dependency>
		<groupId>com.googlecode.json-simple</groupId>
		<artifactId>json-simple</artifactId>
		<version>1.1.1</version>
	</dependency>


	<dependency>
		<groupId>commons-lang</groupId>
		<artifactId>commons-lang</artifactId>
		<version>2.2</version>
	</dependency>

	<dependency>
		<groupId>org.bytedeco.javacpp-presets</groupId>
		<artifactId>tesseract</artifactId>
		<version>3.04.01-1.3</version>
	</dependency>

	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-csv</artifactId>
		<version>1.5</version>
	</dependency>


	<dependency>
		<groupId>io.rest-assured</groupId>
		<artifactId>rest-assured</artifactId>
		<version>4.3.3</version>
		<scope>test</scope>
	</dependency>

	<dependency>
		<groupId>io.rest-assured</groupId>
		<artifactId>json-schema-validator</artifactId>
		<version>4.3.3</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
	<dependency>
		<groupId>com.fasterxml.jackson.core</groupId>
		<artifactId>jackson-databind</artifactId>
		<version>2.12.1</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
	<dependency>
		<groupId>javax.xml.bind</groupId>
		<artifactId>jaxb-api</artifactId>
		<version>2.4.0-b180830.0359</version>
	</dependency>

	<dependency>
		<groupId>io.github.java-diff-utils</groupId>
		<artifactId>java-diff-utils</artifactId>
		<version>4.9</version>
	</dependency>


	<dependency>
		<groupId>org.mongodb</groupId>
		<artifactId>mongo-java-driver</artifactId>
		<version>3.12.2</version>
	</dependency>
	
  
<dependency>  
<groupId>net.sourceforge.tess4j</groupId>  
<artifactId>tess4j</artifactId>  
<version>3.2.1</version>  
com.github.romankh3 image-comparison 4.4.0
  <dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.9</version>
org.mongodb mongo-java-driver 3.12.12
</dependencies>

Hi @KritikaSahare1611
Were you able to find a solution to this ?

@aroras25 you can use

import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;

import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.logging.LogType;
import org.openqa.selenium.logging.LoggingPreferences;
public class ChromeOptionsCapability {

private ChromeOptionsCapability() {
}

private static ThreadLocal<String> dr = new ThreadLocal<>();


public static String getMethodName() {
	return dr.get();
}

public static void setMethodName(String methodName) {
	dr.set(methodName);
}

public static void unload() {
	dr.remove();
}


public static ChromeOptions setChromeOptions()
{
	return new ChromeOptions().addArguments("--disable-notifications")
   .addArguments("disable-infobars").addArguments("start-maximized").addArguments("--remote-allow-origins=*");
}

public static ChromeOptions setChromeOptionsSelenoid()
{
	HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
	chromePrefs.put("intl.accept_languages", "hi");
	LoggingPreferences logPrefs = new LoggingPreferences();
	logPrefs.enable(LogType.BROWSER, Level.OFF);
	logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
	ChromeOptions ops = new ChromeOptions();
	ops.addArguments("--disable-notifications")
	.addArguments("disable-infobars")
	.addArguments("start-maximized")
	.addArguments("--no-sandbox")
	.addArguments("--disable-setuid-sandbox")
	.addArguments("disable-dev-shm-usage")
	.addArguments("--remote-allow-origins=*");
	ops.setExperimentalOption("prefs", chromePrefs);
	ops.setCapability("goog:loggingPrefs", logPrefs);
	ops.setCapability("browserVersion", "latest");
	ops.setCapability("browserName", "chrome");

	Map<Object, Object> options = new HashMap<>();
	options.put("enableVNC", true);
	options.put("enableVideo", false);
	options.put("sessionTimeout", "10m");
	options.put("name", getMethodName());

// options.put("download.default_directory", System.getProperty("user.dir"));
// options.put("download.prompt_for_download", false);
// options.put("plugins.plugins_disabled", new String[] { "Chrome PDF Viewer" });
// options.put("plugins.always_open_pdf_externally", true);
//
// ops.setExperimentalOption("prefs", options);
ops.setCapability("selenoid:options", options);
return ops;
}
}