我正在学习测试自动化,并且在尝试编写Java代码以打开Android模拟器然后在其上创建应用程序时遇到困难。
这是我的代码:
package com.company;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
public class Main {
public static void main(String[] args) throws MalformedURLException {
// write your code here
File f=new File("src");
File fs=new File(f, "ApiDemos-debug.apk");
DesiredCapabilities cap=new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Demo");
cap.setCapability(MobileCapabilityType.APP, fs.getAbsolutePath());
AndroidDriver driver=new AndroidDriver(new URL("http://127.0.0.1:4732/wd/hub"), cap);
}
}
这是一个日志:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder;
at org.openqa.selenium.json.Json.<clinit>(Json.java:47)
at org.openqa.selenium.logging.profiler.HttpProfilerLogEntry.constructMessage(HttpProfilerLogEntry.java:37)
at org.openqa.selenium.logging.profiler.HttpProfilerLogEntry.<init>(HttpProfilerLogEntry.java:29)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:600)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:180)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:155)
at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:109)
at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:39)
at com.company.Main.main(Main.java:25)
Process finished with exit code 1
欢迎任何建议!
答案 0 :(得分:0)
如果您没有基本的Java编程知识和Appium的新功能,那么您可以做的最好的方法是检查appium贡献者如何在java-client repository上为Android编写测试。
只是一些提示:
BaseAndroidTest.java
告诉您如何以编程方式启动服务器和创建Android驱动程序的实例 AndroidElementTest.java
告诉您如何查找元素 花时间分析我提到的代码并在本地计算机上使用它。希望这有助于您在学习自动化方面迈出下一步。
答案 1 :(得分:0)
我的ApiDemo.apk使用了这些组合。我认为诀窍在于选择模拟器/设备和关联APK文件。
ApiDemo.apk
我的模拟器/设备是Android 6(拥有Android 23)所以使用来自我的sdk文件的系统图像的apk文件。
(这个文件我是从sdk文件C:\Users\<UserName>\AppData\Local\Android\Sdk\system-images\android- 23\google_apis\x86\data\app\ApiDemos\ApiDemos.apk
获得的)
REST我使用的当前版本
Selenium-java-3.8.1
appium java client-6.0.0.0-BETA1.jar
common-lang3-3.7 jars
gson 2.8.2.jar (Need to download gson jar seprately)
Appium版本1.6.5或当前版本1.7.1(在上面的组合jar文件和apk文件中,它在appium版本上运行良好,我能够打开应用程序并与元素交互)。
提供整个配置,以便您可以从进一步的课程开始。