【问题标题】:Not able to instantiate android driver appium 1.8.1无法实例化 android 驱动程序 appium 1.8.1
【发布时间】:2018-08-09 17:02:38
【问题描述】:

我正在使用 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,但它无法正常工作。 如果有人遇到过这种情况,请提供解决此问题的步骤。

【问题讨论】:

标签: java android appium appium-android


【解决方案1】:

您使用的 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>

如下定义您期望的能力。您需要在所需的Capabilities 中提供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服务器已经启动。

【讨论】:

  • 谢谢,Suban 的回答。我按照你的步骤,我只将appium版本更改为5.0.4。它工作.. 谢谢。
猜你喜欢
  • 2019-04-30
  • 2015-03-23
  • 2012-08-27
  • 1970-01-01
  • 2015-10-30
  • 2018-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多