一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“app 元素定位失败?”。
做操作之前先问问自己,以下三点做好了吗?
1)adb能识别到设备吗?
2)设备有被其它的程序在占用吗?
3)ADT的版本正确吗?
当你对以上关怀都确认之后,反馈仍然会遇到这样的报错。
那么提供以下三种定位小手段,总有一款可以让你顺利的定位到元素哦!!
每一种工具定位的前提:
通过 adb devices 命令能够识别到至少一个 Android 设备;
设备当前没有被任何其它的应用程序所占用;
第一种:Android ADT 自带工具:uiAutormatorViewer
文章最开始的报错截图,就是来自于这个工具啦。
Android 4.2 以上的版本,自带的自动化测试框架是 uiAutomator。
uiAutomatorViewer 就是它的元素定位工具了。
如果要用 UiAutomator 来做自动化测试,就需要掌握 Java 语言了。
安装:
uiAutomatorViewer 是安卓调试工具(ADT)中的一部分。所以只需要安装 ADT 就可以了(不需要安装 SDK 哦)。
安装 Android Studio
在 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.png)
2)定位元素。
第二种:appium 的 appium inspector
appium 是目前最流行的开源的 app 功能测试框架。
同时支持 iOS 和 Android 的自动化测试,也支持多语言(python/java/C#......png)
安装:
只要安装 appium,那么 appium inspector 也就有了。
appium desktop 下载地址:http://appium.io/
(Ps:需要先安装 nodejs,再安装 appium 程序哦。)