我的这个代码测试的是知乎的apk,apk存在在我的桌面,下面的代码主要是初始化appium和安装apk
package com.util;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.remote.AndroidMobileCapabilityType;
import io.appium.java_client.remote.MobileCapabilityType;
import java.io.File;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
/**
* Appium初始化代码
* @author jff
*/
public class InitDriver {
public static AndroidDriver<AndroidElement> getDriverByUiautomator(String apkPath) throws Exception{
// 要测试的apk路径
File file = new File(apkPath);
// caps变量是我们脚本告诉appium服务端的初始化参数
DesiredCapabilities caps = new DesiredCapabilities();
// app参数就是你要测试的app
caps.setCapability(MobileCapabilityType.APP, file.getAbsolutePath());
// 设备名称,但是这个参数在安卓上可以随便写,但是不能没有
caps.setCapability(MobileCapabilityType.DEVICE_NAME, "xxx");
// 表示使用appium自带的uicode输入法,该输入法支持中文并且会隐藏键盘
caps.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true);
// 表示在执行测试完成后,将设备的输入法重置回原来的
caps.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true);
// 不重签名app
caps.setCapability(AndroidMobileCapabilityType.NO_SIGN, true);
AndroidDriver<AndroidElement> driver = new AndroidDriver<>(new URL(
"http://127.0.0.1:4723/wd/hub"), caps);
return driver;
}
}