无法实例化 android 驱动程序 appium 1.8.1

Not able to instantiate android driver appium 1.8.1

我正在使用 appium 最新版本 1.8.1,selenium 3.14.0 java 客户端,appium 6.1.0 java 客户端。 下面是我获取 android 驱动程序实例的代码:

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);

我有较早的 appium 1.4 和相应的 java 客户端。但是在更新到 1.8.1 版本后我收到错误:

“java.lang.NoClassDefFoundError: 

org/openqa/selenium/remote/internal/OkHttpClient$Factory”

我也将 selenium java 客户端更新到 3.14.0,但它不工作。 如果有人遇到过此问题,请提供解决此问题的步骤。

您使用的 jar 文件有问题。 我建议你创建一个 maven 项目,因为它很容易管理依赖文件。在您的 pom.xml 文件中包含以下依赖项:

<!-- 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>

按如下方式定义您想要的功能。您需要在 desiredCapabilities 中提供 appPackage 和 appActivity。

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);

让你的appium服务器启动。