I am using appium latest version 1.8.1,selenium 3.14.0 java client, appium 6.1.0 java client. below is my code to get android driver instance:
public AndroidDriver<?> driver;
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.APPIUM_VERSION, “1.8.1”);
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, “K9 Viraat”);
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, “6.0”);
capabilities.setCapability(MobileCapabilityType.PLATFORM, “Android”);
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME,
"UiAutomator2");
driver = new AndroidDriver<>(new URL(“https://0.0.0.0:4723/wd/hub”),
capabilities);
I had earlier appium 1.4 and corresponding java client. But after updation to 1.8.1 version I am getting error :
“java.lang.NoClassDefFoundError:
org/openqa/selenium/remote/internal/OkHttpClient$Factory”
I also updated selenium java client to 3.14.0 but it’s not working. If anyone has experienced this, kindly provide steps to resolve this.
You have problem with the jar files you are using. I suggest you to create a maven project as it is easy to manage dependency files. Include following dependency in your pom.xml files:
<!-- https://mvnrepository.com/artifact/io.appium/java-client -->
<dependency>
<groupId>io.appium</groupId>
<artifactId>java-client</artifactId>
<version>6.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.14.0</version>
</dependency>
Define your desiredCapabilites as follow. You need to provide appPackage and appActivity in your desiredCapabilities.
AppiumDriver<MobileElement> driver;
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("deviceName", "Android phone");
caps.setCapability("udid", "your device's udid");
caps.setCapability("platformName", "Android");
caps.setCapability("platformVersion", "your device's platform version");
caps.setCapability("appPackage", "your app's appPackage name");
caps.setCapability("appActivity", "your app's main appActivity name");
driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);
Make your you have started your appium server.