一、DesiredCapabilities的作用
负责启动服务端时的参数设置,启动session的时候是必须提供的。 Desired Capabilities本质上是key value的对象,它告诉appium server这样一些事情,比如: 本次测试是启动浏览器还是启动移动设备? 是启动andorid还是启动ios? 启动android时,app的package是什么? 启动android时,app的activity是什么?
如何找参数appPackage和appActivity的包? 首先找到你的SDK安装路径,找到build-tools里的版本号,这是我的路径:C:\android-sdk-windows\build-tools\30.0.3 *然后cmd进入这个路径,然后输入命令:aapt.exe dump badging C:\Users\Acheng\Desktop\base.apk  这里就是appPackage的包,appActivity的包要往下翻,基本在这个位置:  当然有的apk它的appActivity在这里不显示,不过一般情况都会显示的,没有的话这时可以用另外一个命令找: 首先输入adb shell,然后输入logcat | grep cmp=  出现一大堆,先不用管它,然后在模拟器打开你要找的app,打开以后再看  找到cmp=,就是了
二、参数的初始化设置
DesiredCapabilities capabilities;// 负责启动服务端时的参数设置
//本地安装apk包的文件路径设置,不需要安装就不用设置(格式固定)
File calsspathRoot=new File(System.getProperty("user.dir"));
File appDir=new File(calsspathRoot,"apps");
File app=new File(appDir, "app-ceshi.apk"); //填写的是安装包名
//设置自动化相关参数(设置的过程中只需更改value值)
capabilities=new DesiredCapabilities();
//设置测试的web浏览器,如果是测试app则忽略
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
//设置测试的平台是IOS/Android/FirefoxOS
capabilities.setCapability("platformName", "Android");
//设置设备的序列号
capabilities.setCapability("deviceName","SUNMI");
//设置测试的安卓系统版本
capabilities.setCapability("platformVersion", "6.0.1");
//设置apk路径
capabilities.setCapability("app", app.getAbsolutePath());
//设置apk的包名
capabilities.setCapability("appPackage", "com.ceshi.pos");
//设置启动Activity
capabilities.setCapability("appActivity", "com.ceshi.pos.activity.WelcomeActivity");
//capabilities.setCapability("appWaitActivity", "com.test.merchant.app.activity.LoginActivity");
capabilities.setCapability("noReset", true);//防止重安装app
capabilities.setCapability("unicodeKeyboard", true);//使用 Unicode 输入法 ,支持中文输入
capabilities.setCapability("resetKeyboard", true); //重置输入法到原有状态
capabilities.setCapability("noSign", "true");//设置避免重新签名
autoGrantPermissions:取消自动权限弹框的处理 true or false   
|