Appium中app的元素定位

Posted 幸运球与倒霉蛋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium中app的元素定位相关的知识,希望对你有一定的参考价值。

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

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

adb devices

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

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

 

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

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

 

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

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包名

 

appActivity名称:

 

 

 

 

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

 

 

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

 

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定位,多以此处也不再多赘述了。

以上是关于Appium中app的元素定位的主要内容,如果未能解决你的问题,请参考以下文章

appium---元素定位方法

appium 元素定位

appium 元素定位

appium元素定位

3app自动化:使用appium定位元素的方式及元素的常用操作

定位APP元素方法二appium