简体   繁体   English

移动应用程序未使用适用于 Android 设备的 java appium 代码打开

[英]Mobile app is not opening using java appium code for android devices

package appiumTestss.appiumTestss;

import java.net.URL;

import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;

public class CalculatorTest {

  static AppiumDriver driver;

  public static void main(String[] args) throws Exception {
    System.out.println("Hi kg12");
    openCalculator();

  }

  public static void openCalculator() throws Exception {

    DesiredCapabilities cap = new DesiredCapabilities();

    cap.setCapability("deviceName", "Moto");
    cap.setCapability("udid", "ZY223XXDVVAND");
    cap.setCapability("platformName", "Android");
    cap.setCapability("platformVersion", "8.1.0");

    cap.setCapability("appPackage", "com.google.android.calculator");
    cap.setCapability("appActivity", "com.android.calculator2.Calculator");

    URL url = new URL("http://127.0.0.1:4723/wd/hub");
    driver = new AppiumDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), cap);

    System.out.println("Application started....");
  }


}

Maven dependencies used are,使用的 Maven 依赖项是,

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

<!-- mvnrepository.com/artifact/io.appium/java-client --> 
<dependency>
    <groupId>io.appium</groupId> 
    <artifactId>java-client</artifactId> 
    <version>7.0.0</version>
</dependency>

<dependency> 
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>

Error observed:观察到错误:

Exception in thread "main" java.lang.NoSuchMethodError: org.openqa.selenium.remote.http.HttpClient$Factory.createDefault()Lorg/openqa/selenium/remote/http/HttpClient$Factory;线程“main”中的异常 java.lang.NoSuchMethodError: org.openqa.selenium.remote.http.HttpClient$Factory.createDefault()Lorg/openqa/selenium/remote/http/HttpClient$Factory; at io.appium.java_client.remote.AppiumCommandExecutor.(AppiumCommandExecutor.java:93) at io.appium.java_client.AppiumDriver.(AppiumDriver.java:93) at appiumTestss.appiumTestss.CalculatorTest.openCalculator(CalculatorTest.java:33) at appiumTestss.appiumTestss.CalculatorTest.main(CalculatorTest.java:16)在 io.appium.java_client.remote.AppiumCommandExecutor.(AppiumCommandExecutor.java:93) 在 io.appium.java_client.AppiumDriver.(AppiumDriver.java:93) 在 appiumTestss.appiumTestss.CalculatorTest.openCalculator(CalculatorTest.java:33) 在appiumTestss.appiumTestss.CalculatorTest.main(CalculatorTest.java:16)

Appium already have selenium inside, so no need to have separate selenium dependency. Appium 内部已经有 selenium,所以不需要单独的 selenium 依赖。 You need to add a capability automationName and the AppiumDriver without MobileElement .您需要添加一个功能automationName并没有MobileElementAppiumDriver。 Sample code below:示例代码如下:

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("deviceName", "Moto");
cap.setCapability("udid", "ZY223XXDVVAND");
cap.setCapability("platformName", "Android");
cap.setCapability("platformVersion", "8.1.0");
cap.setCapability("appPackage", "com.google.android.calculator");
cap.setCapability("appActivity", "com.android.calculator2.Calculator");
cap.setCapability("automationName", "UiAutomator2");
driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM