app自动化元素定位方式

2018-11-22  本文已影响0人  迷迭香_d0e9

定位元素的两种方式

1.使用Uiaotomator已安装sdk

2.使用Weditor(已下载weditor)

使用Uiaotomator

位置

在android sdk 的tools文件夹下C:\Users\Administrator\AppData\Local\Android\android-sdk\tools\uiautomatorviewer.bat(找要自己的\android-sdk\tools\目录下的uiautomatorviewer.bat文件)

打开

双击既可以打开,会打开两个窗口,

一个是cmd,另一个是 UI Automator View

捕捉手机屏幕

首先需要PC和android通过USB连接,adb devices 命令可以查看到设备信息。

接下来在UI Automator View 中,点击左上角的第二个图标,捕捉手机屏幕(仅捕捉当前手机停留的页面;若切换页面需重新点击才会刷新)

元素定位

在左侧点击元素,在右下角查看元素的属性信息,右上角查看布局信息

主要属性:

index、text(name)、resource-id(id)、class、package、content-desc(name)

使用Weditor

Android SDK内置工具uiautomatorviewer.bat,在运行uiautomator2的时候,uiautomatorviewer.bat运行不起来,两者之间冲突太严重。故而推荐使用Weditor

安装方法

命令行运行:pip install --pre weditor

使用方法

首先命令行运行python -m weditor,之后浏览器会自动打开一个网页(若页面打开异常或显示异常,可拷贝连接切换浏览器试试)

重点说下这个部分

先忽略iOS和Neco这两个,直接选择Android。输入框中可以写设备号(使用adb devices可获取到)或者设备的Serial(序列号);跟上面提到的配置手机设备参数用法一致。之后点击Connect,如果一切正常就会出现一个绿色的叶子。

页面刷新时,点击蓝色的Reload按钮重新刷新。

连接上之后点击想要定位的元素会自动生成定位到他的方法,可以将方法直接复制出来使用

定位方式


ResourceId定位: 

d(resourceId=" com.netease.cloudmusic:id/a7k ").click()

Text定位

 d(text="推荐").click()

Description定位 

d(description="播放暂停").click()

ClassName定位 

d(className=" android.widget.ImageView ").click()

对于多个相同的元素定位:

如果页面存在多个相同的元素可以使用instance进行选择;

三个相同的元素他们的resourceid和ClassName选择一个即可然后在使用instance:

第一个:

d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView").click()

第二个:

d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView", instance=1).click()

第三个:

d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView", instance=2).click()

备注:可以使用weditor直接生成定位方法;

上一篇下一篇

猜你喜欢

热点阅读