1. 获取driver

appium通过生成driver来识别和操作app的UI元素。生成driver时,需要给出被测设备的相关信息。appium官方上的例子如下:

https://github.com/appium-boneyard/sample-code/blob/master/sample-code/examples/java/appium-generic-test/src/test/java/AndoridBrowserLocalTest.java

    public static AndroidDriver<?> mobiledriver;
@BeforeTest
public void beforeTest( ) throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.APPIUM_VERSION, "1.7.2");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4");
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME,"Appium");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Browser");
capabilities.setCapability("newCommandTimeout", 2000);
mobiledriver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

Android 第三方被测app举例:

    public static AndroidDriver<?> driver1;

    public static void main(String[] args) {

        //set up Appium
DesiredCapabilities capabilities1 = new DesiredCapabilities();
capabilities1.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2");
capabilities1.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities1.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9.0.0");
capabilities1.setCapability(MobileCapabilityType.DEVICE_NAME, "PCT-AL10");
capabilities1.setCapability(MobileCapabilityType.UDID, "xxxx");
capabilities1.setCapability("appPackage", "com.xxxx.xxx.demo");
capabilities1.setCapability("appActivity", ".MainActivity");
//for input Chinese
capabilities1.setCapability("unicodeKeyboard", true);
capabilities1.setCapability("resetKeyboard", true); try {
driver1 = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities1);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
  }

  

如何获取以上信息呢?

  • MobileCapabilityType.APPIUM_VERSION: appium服务器的版本。可通过命令行appium -version 或 安装的appium server客户端查看。
  • MobileCapabilityType.PLATFORM_VERSION:  操作系统版本。Android可通过命令行 adb -s xxxx(欲连接的deviceID) shell getprop ro.build.version.release来查看。
  • MobileCapabilityType.PLATFORM_NAME: Android 或 iOS。
  • MobileCapabilityType.DEVICE_NAME: 被测设备名。Android可通过命令 adb -s xxxx shell getprop ro.product.model 查看。
  • appPackage: 被测app包名。Android可通过命令 adb shell pm list packages | grep xxxx来查看。
  • appActivity: 被测app activity名。可通过sdk里带的uiautomatorviewer查看。
  • MobileCapabilityType.UDID: 被测设备id。Android可通过命令 adb devices获得。

最新文章

  1. 原生态ajax
  2. understand equal and gethashcode
  3. SQL语句中将Datetime类型转换为字符串类型
  4. 使用CSS3实现百叶窗
  5. 网站首页title 里显示ico图标
  6. AngularJS自定义指令(Directives)在IE8下的一个坑
  7. thinkphp中try catch的运用
  8. Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
  9. 关于Android中使用BottomNavigationView切换横屏导致返回主页的问题
  10. CamStar insitexmlclient重新封装为.net Core类库
  11. 解决方案:ppt打不开,显示发现文件中的内容有问题。可尝试修复此演示文稿
  12. WPF touch Scroll -触摸滚动
  13. springboot 学习
  14. W10笔记本电脑弄成WIFI
  15. 利用ConcurrentHashMap来实现一个ConcurrentHashSet
  16. 【Mac brew】代理安装brew insall
  17. jquery 实现两级导航菜单
  18. Adplus 抓取Crash Dump
  19. UVA1584(环状序列)
  20. 20155206 实验一《Java开发环境的熟悉》实验报告

热门文章

  1. 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用
  2. 如何配置虚拟机的ip地址以及如何使用XShell和WinSCP工具
  3. MyBatis配置文件中的标签mappers的子标签mapper的url属性
  4. 剑指offer18:操作给定的二叉树,将其变换为源二叉树的镜像。
  5. Go-函数高级使用-条件分支-包管理-for循环-switch语句-数组及切片-与或非逻辑符
  6. linux下shell 脚本 中windows换行符换成linux换行符
  7. Java 字符串比较
  8. linux mysql 数据库操作导入导出 数据表导出导入
  9. DFA与动态规划
  10. 怎样理解Canvas