Appium中app的元素定位

时间:2021-10-25 17:50:01

app定位方式,本文只讲Android手机的定位方式。

前提条件是adb连接到模拟器或者是手机(具体连接方式这里不再讲解),证明已连接到设备

adb devices

Appium中app的元素定位

app元素定位工具一:UI Automator Viewer

这个工具是Android SDK自带的一个定位工具,具体页面截图如下:

Appium中app的元素定位

 

app元素定位工具二:Appium工具

启动Appium,启动之后,页面有一个放大镜的按钮,如图所示:

Appium中app的元素定位

 

 点击放大镜按钮,进入配置项,如果所示:

platformName  --  系统名称

platformVersion  -- 系统的版本

deviceName  --  机型(随意添)

appPackage  --  app包名(这里以淘宝为例)

appActivity --  欢迎页面

noReset --  启动app时不要清除app里的原有的数据(True)

 

获取appPackage和appActivity的方法,com命令进入Android-sdk/build-tools-29.0.2目录下,执行命令

aapt dump badging xxx.apk(安装包名称)

app包名

Appium中app的元素定位

 

appActivity名称:

 Appium中app的元素定位

 

 

Appium中app的元素定位

 

 设置好启动项参数后,启动会话。

Appium中app的元素定位

 

 

接下来说元素定位表达式,appium中的定位表达式,继承了selenium中的八大定位表达式(selenium的八大定位前边已经说过,就不再赘述),同时也有自己的定位表达式,分别是:

Appium中app的元素定位

 Appium中app的元素定位

AndroidUiAutomator定位

使用UiAutomator中的UiSelector类来处理元素定位,该方法的参数为UiSelector类定位元素的表达式

new UiSeletor().函数名称("定位表达式")

实例化一个UiSelector对象,然后通过实例调用接口。

这里常用的是ANDROID_UIANTOMATOR和ACCESSIBILITY_ID元素定位

 

举个栗子:

通过resrouce-id来定位

find_element_by_android_uiautomator(new UiSelector().resourceId("com.taobao.taobao:id/textview_goods_title"))

 通过text来定位

find_element_by_android_uiautomator(new UiSelector().text("文本内容"))

 通过content-desc定位

find_element_by_android_uiautomator(new UiSelector().description("勾选宝贝"))

 

id、class、content-desc定位

通过id来定位(resrouce-id)

find_element_by_id("com.taobao.taobao:id/textview_goods_title")

通过ClassName定位(class)

.find_element_by_class_name("android.widget.CheckBox")

通过AccessibilityId定位(content-desc)

find_element_by_accessibility_id("勾选宝贝")

app定位中不建议使用xpath定位,多以此处也不再多赘述了。