I am getting the following error when invoking MobileDriver with Selenium Java 4.25.0 and Appium Java Client 8.3.0:
Error screenshot
When I click the error line number in logs, the following screen is displayed:
Class File not found
I tried using the latest Appium Java Client 9.3.0, as well as other versions in the 9.x.x series from Maven Repository, with Selenium Java 4.25.0. However, I am still encountering the same issue.
java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.<init>(java.net.URI, java.time.Duration, java.time.Duration, org.openqa.selenium.remote.http.Filter, java.net.Proxy, org.openqa.selenium.Credentials)'
Example code:
// MobileLogin.java file
public void invokeMobileDriver(String remoteTestName) {
baseClass.driver = baseClass.invokeMobileDriver("AD", remoteTestName);
}
// BaseClass.java file
// Method to invoke mobile driver
public AppiumDriver invokeMobileDriver(String appType, String testNameForReomoteExec) {
if (appiumDriver != null) {
try {
this.appiumDriver.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (appType.equalsIgnoreCase("LP")) {
appiumDriver = new MobileDriverFactory().invokeMobileDriver("LP",testNameForReomoteExec);
} else if (appType.equalsIgnoreCase("AD")) {
appiumDriver = new MobileDriverFactory().invokeMobileDriver("AD",testNameForReomoteExec);
} else {
//exit from execution
}
initializeMobileDriver(appiumDriver);
return appiumDriver;
}
// MobileDriverFactory.java file
public AppiumDriver invokeMobileDriver(String appType, String testNameForReomoteExec) {
// Created object of DesiredCapabilities class.
DesiredCapabilities capabilities = new DesiredCapabilities();
try {
HashMap<String, Object> ltOptions = new HashMap<String, Object>();
capabilities.setCapability("platformName", Environment.mobileDevicePlatformName);
if (appType.equalsIgnoreCase("LP")) {
capabilities.setCapability("appPackage",Environment.outplacementAndroidAppPackage);
capabilities.setCapability("appActivity", Environment.outplacementAndroidAppActivity);
}
if (appType.equalsIgnoreCase("AD")) {
capabilities.setCapability("appPackage",Environment.caAppPackageForAndroid);
capabilities.setCapability("appActivity", Environment.caAppActivityForAndroid);
}
if (Environment.mobileDevicePlatformName.equalsIgnoreCase("android")) {
if (Environment.mobileDeviceLocation.equalsIgnoreCase("local")) {
// Set android deviceName desired capability. Set your device name.
capabilities.setCapability("deviceName", Environment.mobileDeviceName);
capabilities.setCapability(CapabilityType.BROWSER_VERSION, Environment.mobileDevicePlatformVersion);
capabilities.setCapability("platformName", Environment.mobileDevicePlatformName);
capabilities.setCapability("autoGrantPermissions", true);
return new AndroidDriver(new URL(Environment.androidRemoteDriverURL), capabilities);
}
New contributor
rajashri is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.