[英]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并没有MobileElement的AppiumDriver。 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.