当前位置:网站首页>Appium自动化测试基础 — uiautomatorviewer定位工具
Appium自动化测试基础 — uiautomatorviewer定位工具
2022-07-06 18:03:00 【测试-八戒】
之前我们在做web页面自动化的时候就说过,元素定位是页面自动化的第一步。
同理App自动化测试的第一步,也是元素的定位。
在APP中定位元素的话,需要借助一些元素定位工具。
APP中的元素定位工具大致有三种:
uiautomatorviewer
Appium Inspector
Chrome Inspect
(一)uiautomatorviewer定位工具
1、uiautomatorviewer介绍
在开始编写测试代码之前,需要获取待测应用的UI元素。可以通过uiautomatorviewer
工具来获取应用的界面截图并分析。uiautomatorviewer
工具获取当前UI界面的快照,提供一个可视化的界面,来查看UI布局结构,并且可以查看各个控件的相关属性。利用这些信息来选择特定的UI组件,并创建APP中的自动化UI测试代码。
总结:
uiautomatorviewer
工具是专门用来定位Android系统APP中原生页面中的元素。uiautomatorviewer
是Android SDK里的一个工具,这个工具在Android SDK目录下的tools文件夹下。(IOS系统在tools\bin
的子目录下)uiautomatorviewer
使用简单,速度也相对比较快。
2、uiautomatorviewer工具打开方式
打开uiautomatorviewer
工具,如下图:
uiautomatorviewer.bat
是一个windows系统下的可执行文件,双击即可打开。
双击打开uiautomatorviewer.bat
,先会出现一个黑窗口,然后就会出现一个uiautomatorviewer
工具的界面。
3、uiautomatorviewer布局介绍
整个界面分四个区域:
- 工作栏区
在工作栏中共有4个按钮,从左至右分别用于:
- 打开已保存的界面快照和布局。
- 抓取当前手机屏幕截图(Device Screenshoot uiautomator dump)。
- 带有压缩层次结构的设备屏幕截图(Device Screenshoot with Compressed Hierarchy (uiautomator dump –compressed))
第二按钮与第三按钮的区别在于:
第二按钮把全部布局呈现出来,而第三按钮只呈现有用的控件布局。
比如存在一个Frame,但只有装饰功能,那么点击第三按钮时,可能不被呈现。 - 保存当前屏幕界面的快照和布局。
- 屏幕截图区,显示当前屏幕显示的布局图片。
- 布局区,已XML树的形式,显示控件布局。
- 控件属性区,当点击某一控件时,将显示该控件属性信息。
- uiautomatorviewer工具的使用
1)uiautomatorviewer
工具使用前提
- 打开
uiautomatorviewer
工具 - 所测试设备是开机状态(手机或者模拟器)
- 确保电脑与设备是链接状态,也就是
cmd进入命令行终端,
输入adb connect 127.0.0.1:21503
链接逍遥模拟器,
输入adb devices
能够获取设备名称。
如果电脑没有与设备不是链接的状态,点击uiautomatorviewer
工具栏中的第二个按钮,来抓取手机界面是抓取不到的。
如下图:
2)抓取当前手机的屏幕界面
就是点击uiautomatorviewer
工具栏中的第二个按钮进行抓取:
说明:点击完后,设备上的界面就会被同步到这个工具的左侧,点击左侧需要查看的控件,在这个工具的右侧就可以看到这个控件对应的详细信息。
提示:
当uiautomatorviewer
能够不能抓取手机屏幕时,可以先关闭和重启adb服务。
- adb kill-server
- adb start-server
3)定位其他页面里的元素
如果需要继续定位其他页面里的元素,先在设备中操作到要定位元素的页面后,再次点击工具左上角的拍照按钮,就可以抓取最新的页面元素信息。
例如:
定位完设置app中界面的元素,我又想定位淘宝首页的页面元素。
首先在手机中打开淘宝app,进入到淘宝app的首页。
然后点击uiautomatorviewer
工具栏中的第二个按钮,来抓取新的界面。
4)保存
点击保存按钮,可保存抓取的屏幕截屏和一个.uix文件(XML格式的页面布局,就相当于页面源码)。
我们可以看到文件夹中会有上面说过的两个文件。
我们也可以对保存的文件进行重命名,方便我们以后的使用和管理。
5)打开已保存的界面快照和布局
点击打开文件,可以将之前保存好的页面屏幕截图和.uix文件导入进来。
点击OK之后,就选显示以前保存过的界面信息了,如下图:
导入后即可进行元素定位操作。
说明:
我们先介绍uiautomatorviewer
工具的使用,关于如何定位页面中的元素,之后的文章会详细说明。
重点:配套学习资料和视频教学
那么在这里我也精心准备了上述大纲的详细资料在下方链接如下
边栏推荐
- [chip scheme design] pulse oximeter
- Installation and testing of pyflink
- Wood extraction in Halcon
- JS reverse -- ob confusion and accelerated music that poked the [hornet's nest]
- 搭建【Redis in CentOS7.x】
- Your cache folder contains root-owned files, due to a bug in npm ERR! previous versions of npm which
- Dark horse notes - create immutable sets and streams
- 域分析工具BloodHound的使用说明
- 对C语言数组的再认识
- According to the analysis of the Internet industry in 2022, how to choose a suitable position?
猜你喜欢
Wood extraction in Halcon
[advanced C language] 8 written questions of pointer
Your cache folder contains root-owned files, due to a bug in npm ERR! previous versions of npm which
Your cache folder contains root-owned files, due to a bug in npm ERR! previous versions of npm which
一起看看matlab工具箱内部是如何实现BP神经网络的
Let's see through the network i/o model from beginning to end
Installation of gazebo & connection with ROS
Yunna - work order management system and process, work order management specification
系统休眠文件可以删除吗 系统休眠文件怎么删除
Send template message via wechat official account
随机推荐
Asset security issues or constraints on the development of the encryption industry, risk control + compliance has become the key to breaking the platform
Sword finger offer II 035 Minimum time difference - quick sort plus data conversion
uva 1401 dp+Trie
【信号与系统】
Metauniverse urban legend 02: metaphor of the number one player
[JS] obtain the N days before and after the current time or the n months before and after the current time (hour, minute, second, year, month, day)
机器学习:随机梯度下降(SGD)与梯度下降(GD)的区别与代码实现。
LeetCode. 剑指offer 62. 圆圈中最后剩下的数
Receive user input, height BMI, BMI detection small business entry case
curl 命令
云呐|工单管理软件,工单管理软件APP
微信公众号发送模板消息
Machine learning: the difference between random gradient descent (SGD) and gradient descent (GD) and code implementation.
C语言实例_3
Boot - Prometheus push gateway use
黑马笔记---创建不可变集合与Stream流
What are the differences between Oracle Linux and CentOS?
Taro2.* applet configuration sharing wechat circle of friends
What does security capability mean? What are the protection capabilities of different levels of ISO?
从零开始匹配vim(0)——vimscript 简介