启动设置需要考虑的地方
1:本次运行于哪个平台,是Android 还是 IOS
2: 本次运行时设备是哪一个
3:本次运行的app 对应的包名是什么,ActivtyName 是什么
4: Appium 服务器地址是多少
5: 如果当前手机没有安装app,启动时需要从哪个目录寻找apk 安装
File classpathRoot = new File(System.getProperty("user.dir")); //返回当前工程的根目录
File appDir = new File(classpathRoot, "apps/ContactManager");
File app = new File(appDir, "laiyifen_618.apk"); //apk 存放的目录
//判断Apk 是否存在
if (!app.exists()){
System.out.println("本次需要安装的APK 不存在");
}
//设置启动参数
DesiredCapabilities capabilities = new DesiredCapabilities();
//获取绝对路径
capabilities.setCapability("app", app.getAbsolutePath()); //设置apk 安装路径
包名获取方式
先从网上下载一个aapt.exe 工具包
我这是放在tool 目录下
在tool 下执行aapt dump badging apk名称
>f:\1.txt 表示结果输出到f:\1.txt
用记事本找开1.txt
第一行显示包名
再搜launchable-activity
可以找到activyty 名
最后完整的Appium 启动信息就是这样的
//运行启动方法
public static void Setup() throws MalformedURLException, InterruptedException {
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "apps/ContactManager");
File app = new File(appDir, "laiyifen_618.apk");
//判断Apk 是否存在
if (!app.exists()){
System.out.println("本次需要安装的APK 不存在");
}
//设置启动参数
DesiredCapabilities capabilities = new DesiredCapabilities();
//获取绝对路径
capabilities.setCapability("app", app.getAbsolutePath());
//设置浏览器类型 如果为空,就取用Appium 中设定的浏览器
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
//设置键盘使得支持中文输入
capabilities.setCapability("unicodeKeyboard", "True");
capabilities.setCapability("resetKeyboard", "True");
//设置测试平台
capabilities.setCapability("platformName","Android");
//设置设备名称
capabilities.setCapability("deviceName","Android Emulator");
//设置Android 版本
capabilities.setCapability("platformVersion","4.4");
//设置Android 版本
//capabilities.setCapability("udid","127.0.0.1:62001");
capabilities.setCapability("udid","QMS4C15B02008996");
//设置启动包名
capabilities.setCapability("app-package", "com.umaman.laiyifen");
//设置启动主Activity
capabilities.setCapability("appWaitActivity", "com.laiyifen.app.activity.SplashActivity");
capabilities.setCapability("app-activity", "com.laiyifen.app.activity.SplashActivity");
//设置代理服务器
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
//设置隐式等待超时时间
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}