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']
---------------------------代码实现------------------------------