今天又了解到这一种APP自动化元素定位方法,在我自己尝试的时候,果不出我所料,定是踩坑连连,在度娘的帮助下,勉勉强强能够使用,但是效果不是太好,后续我再继续研究,先赶紧记下这个避坑方法,以免后续忘记

UI Automator Viewer,android SDK自带的一个元素定位工具,用于扫描和分析Android应用程序的UI组件的GUI工具,通过截屏并分析XML布局文件的方式,为用户提供控件信息查看服务。而且,我之前用appium工具定位不到的元素,用它就可以定位到。

1、启动

他的位置一般在android-sdk\tools文件夹下,最后一个bat文件,双击即可打开

addview指定位置 android android.view.view怎么定位不到元素_addview指定位置 android

打开后是这个样子

addview指定位置 android android.view.view怎么定位不到元素_java_02

 是的没错,空空如也..........

2、链接

那就点个链接按钮试试吧,当然前提是你本地跟手机已经连接成功

addview指定位置 android android.view.view怎么定位不到元素_android_03

点完就......但是我本地跟手机连接成功了为什么说我没能连接adb呢,原因是我们的automator没能找到你adb的路径

 

addview指定位置 android android.view.view怎么定位不到元素_java_04

 右键编辑uiautomatorviewer.bat文件

将最后一行

call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=%prog_dir%" -jar %jarpath% %*

修改为

call "%java_exe%" "-Djava.ext.dirs=%javaextdirs%" "-Dcom.android.uiautomator.bindir=D:\Program Files\android-sdk\tools" -jar %jarpath% %*

其中,“D:\Program Files\android-sdk\tools”是uiautomatorviewer.bat所在的目录,修改完后,重新启动uiautomatorviewer,如果还是不行,那就在官网下载adb工具包

官网网址https://developer.android.com/studio/releases/platform-tools

addview指定位置 android android.view.view怎么定位不到元素_测试工具_05

下载完解压后,把文件拷贝到uiautomatorviewer.bat所在文件夹下,直接全选,在目标文件夹下粘贴。

 

addview指定位置 android android.view.view怎么定位不到元素_测试工具_06

 再次重启,如果你已经成功了的话,那么恭喜你,就不用往下看了,然鹅,我还是!没有成功!

addview指定位置 android android.view.view怎么定位不到元素_jar_07

我的内心是崩溃的,无奈,接着找方法吧

继续解决

1、在D:\123\too目录下创建app.uix文件

2、在D:\123\too目录下创建app.png文件

ps:这里的目录自定义创建,但是我一开始在Program Files文件夹下创建后续步骤都无法成功,所以就直接在D盘下创建后尝试才成功

3、打开cmd执行以下命令

  • adb shell uiautomator dump /sdcard/app.uix
  • adb pull /sdcard/app.uix D:\123\too\app.uix
  • adb shell screencap -p /sdcard/app.png
  • adb pull /sdcard/app.png D:\123\too\app.png
     

ps:前提是全程你的手机和计算机是成功连接的,这里注意,以上命令是将你手机当前页面的元素属性等信息存到刚刚创建的两个app.uix 和app.png文件内,所以运行以上几条命令时,手机需要在未锁屏的状态下,当前页为你想要查看元素的页面。这样运行完命令,继续下列操作的时候就直接能展示你想定位的页面了。

4、运行uiautomatorviewer.bat,点击文件图标导入文件

 

addview指定位置 android android.view.view怎么定位不到元素_测试工具_08

 点击【OK】后,即展现出了我想定位元素的页面,成功不易(不知道是不是我太菜的锅)心好累。

addview指定位置 android android.view.view怎么定位不到元素_android_09

但是 ,这种方法只能展示出运行adb命令时定位的当前页面的信息,如果想换一个页面进行属性的查看定位,则需要手机当前页展示的时候,去再次运行adb命令

特此记录,后续继续研究~