App元素定位失败了,怎么办?

发布于 更新于
本文目录
  1. 每一种工具定位的前提:
  2. 安装:
  3. 安装:
  4. 使用:
  5. 安装:

技术文章

学员们在日常的android app自动化测试工作当中,元素定位时会遇到以下类似的报错:然后来问老师,这是啥情况?老师一般都会送上亲切的关怀:1)adb能识别到设备吗?2)设备有被其它的程序在占用吗?3)ADT的版本正确吗?当学生对以上关怀...

学员们在日常的android app自动化测试工作当中,元素定位时会遇到以下类似的报错:



然后来问老师,这是啥情况?


老师一般都会送上亲切的关怀:


1)adb能识别到设备吗?


2)设备有被其它的程序在占用吗?


3)ADT的版本正确吗?


当学生对以上关怀都确认之后,反馈仍然会遇到这样的报错。


那么老师为了不影响学习的热情,会提供以下三种定位小手段,总有一款可以让你顺利的定位到元素哦!!


每一种工具定位的前提:


1、通过 adb devices命令能够识别到至少一个android设备;


2、设备当前没有被任何其它的应用程序所占用;


1

Android ADT自带工具:

uiAutormatorViewer


文章最开始的报错截图,就是来自于这个工具啦。


android 4.2以上的版本,自带的自动化测试框架是uiAutomator。


uiAutomatorViewer就是它的元素定位工具了。


如果要用UiAutomator来做自动化测试,就需要掌握java语言了。 

安装:


uiAutomatorViewer是安卓调试工具(ADT)中的一部分。所以只需要安装ADT就可以了(不需要安装SDK哦)。


1) 安装Android Studio


2)在Android Studio的启动页面当中,选择右下角的Configure -> SDK Manager


会弹出下图:选择Android SDK -> SDK Tools ,按图中勾选,点击OK进入安装,安装完成即可关闭Android Studio。


记住图中Android SDK Location对应的路径。



使用:


1)找到ADT安装目录,在其tools/bin目录下,找到uiAutomatorViewer程序,双击打开。


例如:ADT的目录为:

/Users/liyuan/Library/Android/sdk



(Ps: 亲测目前不支持jdk1.8以上的版本。所以为了启动成功,要安装jdk1.8的版本。


mac下若安装了jdk11和jdk1.8,需要编辑uiautomatorviewer文件,找到javaCmd="java"。


修改为 

javaCmd="/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/bin/java"

/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home/bin/java为jdk1.8版本对应的java.)


2)定位元素。



2

appium的appium inspector


appium是目前最流行的开源的app功能测试框架。


同时支持IOS和Android的自动化测试,也支持多语言(python/java/C#......)


安装:


只要安装appium,那么appium inspector也就有了。


appium desktop下载地址:https://appium.io/


(Ps:需要先安装nodejs,再安装appium程序哦。)


使用:


1) 启动appium desktop之后,点击右上角的第一个按钮



2)在打开如下界面当中,按图中所示,填写信息:




3)会根据启动参数,去打开对应的app,然后会截取app当中的页面。




3

Python版uiAutomator2中的weditor


python语言实现的一个app自动化测试框架。


安装:


安装uiAutomator2:pip install -U uiautomator2


安装定位工具weditor: pip install -U weditor


安装完成之后:命令行运行:weditor --help确认是否安装成功。



使用:


1) 命令行输入:weditor 会自动打开在浏览器当中打开一个2) 所示的页面。

!



2)选择Android,输入设备序列号,点击connect。点击Dump Hierarchy,就可以看到元素的信息了。




延伸:


github地址:

https://github.com/openatx/uiautomator2


柠檬班-论坛文章地址:

https://www.lemfix.com/topics/346


4

总结


以上3种定位告诉你: 任何一个app自动化测试的框架,都会给你提供一个对应的定位工具哦!


android自带的UiAutomator测试框架,提供 uiAutomatorViewer。


appium测试框架,提供appium inspector.


python实现的uiAutomator2测试框架,提供weditor


在app自动化测试的过程中,可以使用任意一种来帮你进行元素定位。


本文由柠檬班小简老师原创,转载需注明出处!


继续阅读