UIAutomatorviewer工具一直被用于Android app元素定位,助力团队进军APP自动化,可谓劳苦功高。但UIAutomatorviewer存在不少限制:
-
不能校验我们写的定位表达式是否正确定位到控件(类似浏览器上的F12);
-
连接不够稳定;
-
不能模拟用户动作;
-
无法连接Android 6.0版本及以上的真机(硬伤);
-
无法定位iOS app元素(阻碍进步)。
综上,团队不得不寻求新的突破,所幸高版本的Appium Inspector满足了需求,带来了希望。至此,UIAutomatorviewer就慢慢退役,挂在功勋墙上。接下来我们就一起走进Appium Inspector。
一、安装Appium Inspector
Appium Inspector在Appium 1.22版本之前是Appium GUI自带的一个元素工具,具体入口在GUI启动server后的下图入口:
Appium 1.22版本之后,Appium将Appium Inspector从Appium GUI上剥离,作为一个独立的应用。Appium Inspector提供两种使用方式,一种为桌面应用,一种为网页应用。为了搞iOS app自动化Appium版本升级至了1.22.3版本(老版本不支持iOS),因此我们采Appium Inspector来做app元素定位。
-
桌面版本
a. 下载Appium Inspector 安装包(ATP开放平台已提供下载)
b. 下载完成后,打开安装包进行安装
c. 安装完成后就能在电脑桌面看到安装好的Appium Inspector应用。
- 网页版本
登陆Appium Inspector by Appium Pro网页即可,如下:
二、认识Appium Inspector应用界面
Appium Inspector应用界面如下:
-
区域一 为Appium server配置项区,其中远程主机默认为127.0.0.1,远程端口默认为4723,远程路径默认为/wd/hub
-
区域二、三 为 Capabilities 相关区域,也即 Appium session 相关区域,其中区域二的 Desire Capabilities 为 Capabilities 的手动逐个添加区域,区域三为 JSON 形式的 Capabilities 的批量添加区
三、Appium Inspector连接真机(以iOS为例)
-
通过tidevice连接iOS真机(详见【app自动化】iOS自动化之tidevice篇)
-
启动Appium服务
-
如下填写连接的相关参数,填写无误后点击【启动会话】即可
连接的能力集Capabilities,iOS和Android存在差异,本次对如何填写 Capabilities暂不做介绍,后续进行专刊介绍。点击【启动会话】后,即可连接真机,如下:
-
区域一:截图的手机界面 可以点击选择元素
-
区域二:顶部操作栏 从左往右的按钮依次是 Select Element:选择元素。 Swipe By Coordinates:选择滑动的起始和结束位置。 Tap By Coordinates:使得手机界面变换可操作状态,可以点击界面的元素。 Back:模拟Android的返回键。 Refresh Source & Screenshot:刷新页面,用来重新获取手机当前界面。 Start Recording:录制操作。 Search for element:校验定位表达式。 Copy XML Source to Clipboard:复制XML树。 Quit Session & Close Inspector:退出当前Session。
-
区域三:XML树 以XML树的形式,展示界面上的控件布局
-
区域四:控件属性区域 选择某个控件,在这里可以显示该控件的所有属性和值
至此,就可以通过在区域一种选择点击所需的元素,如上图选择了EZLive 主界面的【登陆/注册】按钮,区域四则对应显示了该元素的ios_class_chain、ios_predicate以及xpath等定位方法,还包括该按钮的一些属性,非常的实用。
下一节,开始继续深入使用Appium Inspector,敬请期待。