appium自动化测试(三) - app元素定位+uiautomator+安卓控件
一、安卓APP组成
Hybrid & native app
activity & package
布局 & 控件
二、Hybrid & Webview
(Hybrid)混合应用程序,在应用程序中嵌入了webview,通过webview访问网页
webview是一个基于webkit引擎,展现web页面控件
作用:显示和渲染web界面
直接使用html文件(网络或Apk资源包asserts中)作布局
可和JavaScript交互调用
三、Native app
传统的原生App开发模式,android基于Java语言,底层调用Google提供的API,IOS基于Objective C 或Swift,底层调用Apple官方提供的API
tips:
1、在手机\模拟器中点击关于手机的版本号5下,出来开发者选项
2、在开发者选项中勾选上显示布局界面
3、如果是HTML的界面,那界面不会有布局界面显示,如果有则说明是native的界面
四、Android布局类型

五、常见控件
TextView:文本控件,展示文本/文字
EditText:可编辑输入框,用于接收用户输入的数据
Button:按钮,用户通过点击Button触发一系列的事件
CheckBox:复选/多选按钮
ImageView:图片控件,用于显示图片
ProgressBar:加载进度条,表示正在加载一些数据
index:索引
text:文本描述,新版本需要使用
findElementByAndroidUIAutomator("new UiSelector().text(\"师资团队\")")
resource-id:控件资源的id,唯一,有的控件/布局可能没有
content-desc:内容描述(为残疾人士设置的属性,如使用talkback,会发出content-desc中描述信息声音
bounds:控件/布局界限

六、appium - app元素定位
1、通过id定位:resource-id
2、通过ClassName定位:classname
3、通过AccessibilityId定位:content-desc
4、通过AndroidUiautomator定位
5、通过xpath定位
定位优先顺序:id,accessibilityId,ClassName,AndroidUiautomator,xpath
七、UI AUtomator
UI自动化测试框架,安卓移动端app。
要求:Android4.3以上
提供了一系列API:执行UI测试在系统或者第三方app上面。
允许在被测设备上执行操作,比如打开系统设置菜单。
适合编写黑盒自动化测试。
UI Automator框架的主要特点:
1、元素定位:UI Automator Viewer扫描、分析待测应用的UI组件的图像工具。
2、元素操作:Accessing device state.在目标设备和app上的各种操作。
3、元素识别:UI Automator APIs.在多个应用程序中捕获和操作UI组件。
八、UI Automator Viewer
元素识别工具:
UI Automator Viewer
在安卓的SDK下的tools目录中。

九、UI Automator APIs
UiObject类:安卓组件对象
对象有许多模拟实际操作手机的方法和属性
比如文本的编辑、手势的操作等。
UiSelector类:
通过组件的各种属性与节点关系定位组件。
十、Accessing device state
UiDevice类提供了一系列方法和属性来模拟在手机上的实际操作
获取设备信息:屏幕分辨率、选装状态,亮灭屏
操作:按键、坐标操作、滑动、拖拽、截图。。。。
查找元素:

十一、AndroidUiAutomator定位
使用UiAutomator中的UiSelector类来处理元素定位
在python客户端appium库中通过,uiautomator来获取元素的方法为:
driver.find_element_by_android_uiautomator()
该方法的参数为Uiselector类定位元素的表达式:
new UiSelector().函数名称("定位表达式")
实例化一个UiSelector对象,然后通过实例调用接口。
示例:
driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.xxzb.fenwoo:id/btn_login")')

浙公网安备 33010602011771号