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")')

posted @ 2018-09-25 11:33  sinder2018  阅读(122)  评论(0)    收藏  举报