UI Automator测试框架提供了一组API来构建UI测试。

利用UI Automator API可以执行在测试设备中,打开‘设置’菜单或应用启动器等操作。

UI Automator测试框架非常适合编写黑盒自动化测试

【注意】如果你的安卓机版本在6及以上,可以在desired_caps字典中加上下面这句代码:

'automatorName': 'UiAutomator2'

UI Automator查看器

  访问设备状态:

UI Automator测试框架提供了一个UiDevice类。该类可用于执行以下操作:

- 更改设备旋转

- 按D-pad按钮

- 按返回、主屏幕、菜单按钮

- 打开通知栏

- 对当前窗口进行屏幕截图

如:要模拟按下‘主屏幕’按钮,请调用UiDevice.pressHome()方法

UI Automer API:

UiSelector:是我们appium自动化代码选择元素时直接使用到的。

UiSelector类似于appium中find_element_by_xxx()方法中的函数值。

如:根据ID选择元素

java语法:newSelector().resourceId("io.manong.developerdaily:id/tv_tab_title")

appium用法:driver.find_element_by_android_uiautomator('new UiSelector().resourceId("io.manong.developerdaily:id/tv_tab_title")')

如:根据className选择元素

java语法:new UiSelector().className("android.widget.TextView")

appium 用法:driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.TextView")')

如:根据class name 和text属性

code = 'new UiSelector().text("我的").classname("android.widget.TextView")'

ele = driver.find_element_by_android_uiautomator(code)

如:根据childSelector和instance方法

code = 'new UiSelector().resourceId('\

' "io.manong.developerdaily:id/tab_bar").childSelector(new UiSelectot().className('\

' "android.widget.TextView").instance(3))'

ele = driver.find_element_by_andorid_uiautomator(code)

ele.click()

-------------------------代码实现-------------------------------

滑动屏幕:

*  Appium WebDriver的swipe方法(坐标和duration)

* 直接查看,估算操作坐标

* 先获取元素坐标,再分析操作坐标(更健壮)

location = ele.location   左上角坐标   (dict:有x,y)

size1 = ele.size  宽  高  (dict:有width,height)

操作不可见元素:

* 先滑动到其可见

* 再操作该元素

* 获取全屏幕尺寸

screenSize = driver.get_window_size()

screenW = screenSize['width']

screenH = screenSize['height']

---------------------------代码实现------------------------------

最新文章

  1. 2016总结-->生活不只有技术和代码,还有诗和远方的田野。
  2. JAVA CDI 学习(4) - @Alternative/@Default/@Any & Extension
  3. Http Request
  4. ubuntu 16.04 source (HUST and 163)
  5. CAT XQX ---- 增删改查架构说明 1
  6. 关于Javascript的内存泄漏问题的整理稿
  7. 一点ASP.NET MVC Html.Helper类的方法
  8. Asp.Net Mvc5 之Controller
  9. POJ 3616 Milking Time 简单DP
  10. PHP多维数组的魅力
  11. SGU 125.Shtirlits
  12. 201521123035《Java程序设计》第十三周学习总结
  13. IoC和AOP的理解
  14. 从redis中取值如果不存在设置值,使用Redisson分布式锁【我】
  15. django orm 管理器 objects
  16. Nginx 流量和连接数限制
  17. Flume架构以及应用介绍[转]
  18. Swift5 语言指南(十八) 可选链接
  19. PHP基础知识之————匿名函数(Anonymous functions)
  20. http://4526621.blog.51cto.com/4516621/1343369

热门文章

  1. LoadRunner具体流程
  2. ubuntu开机自启动服务
  3. JavaScript with Image:创建缩略图
  4. nyoj 22-素数求和问题(打表)
  5. 【搞定 Java 并发面试】面试最常问的 Java 并发进阶常见面试题总结!
  6. Video的自我学习
  7. 标准库flag和cobra
  8. Filebeat自定义索引 && 多output过滤
  9. 三维目标检测论文阅读:Deep Continuous Fusion for Multi-Sensor 3D Object Detection
  10. Linux -- 进程间通信之信号量