Appium之UIAutomator API选择元素
Posted 呸呸裴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium之UIAutomator API选择元素相关的知识,希望对你有一定的参考价值。
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\']
---------------------------代码实现------------------------------
以上是关于Appium之UIAutomator API选择元素的主要内容,如果未能解决你的问题,请参考以下文章
Appium python自动化测试系列之Android UIAutomator终极定位
Appium+python自动化- Android UIAutomator终极定位凶“胸”器(超详解)