Appium自动化(7) - 控件定位工具之Appium 的 Inspector
如果你还想从头学起Appium,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1693896.html
前言
- 上一篇文章介绍了另一块控件定位工具:UIAutomatorviewer
- 这一篇,我们来介绍另一款工具:Appium Desktop的Inspector
UIAutomatorviewer 的局限性
- 不能校验我们写的定位表达式是否正确定位到控件(类似浏览器上的F12)
- 连接不够稳定
- 不能模拟用户动作
Appium Desktop 的 Inspector 的优势
- 可以校验定位表达式(如:XPATH表达式)
- 通过设置Desired Capabilities来连接手机,比较稳定
- 可以模拟用户动作(如:点击,返回,滑动等操作)
- 可以录制一系列操作,然后转换成代码
Inspector 的入门使用
- 首先,要启动Appium Server
- 然后,在窗口点击右上角Start Inspector Session(如图),即可弹出一个窗口
- 输入好Desired Capabilities后,点击【Start Session】就阔以啦
默认会选中Automatic Server
Will use currently-running Appium Desktop server http://localhost:4723
表示正在使用本地的Appium Server
注意:久了这里可能会为空,需要手动选择本地Appium Server哦
下方的Desired Capabilities
因为只是定位控件,所以写必传的参数就可以啦!
可以直接将下面的值改了,然后复制粘贴到右侧的 JSON Representation 内哦
{ "platformName": "Android", "plathformVersion": 9, "deviceName": "test0106", "appPackage": "io.manong.developerdaily", "appActivity": "io.toutiao.android.ui.activity.LaunchActivity", "noReset": true, "newCommandTimeout": 6000 }
Inspector 定位控件界面的详细介绍
怎么看功能都比UIAutomatorviewer丰富吧!哈哈哈
红色圈:截图的手机界面
不多介绍,可以点击元素
蓝色圈:顶部操作栏
从左往右的按钮依次是
- 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树的形式,展示界面上的控件布局
绿色圈:控件属性区域
选择某个控件,在这里可以显示该控件的所有属性和值
Selected Element 的详细介绍
顶部的Tap、Send Keys、Clear
模拟用户的操作
- tap:相当于点击该元素
- send keys:输入值,针对输入框的操作
- clear:清空所有值
建议:说实话,我不建议用这些操作,因为很容易造成断开连接(左侧界面一直loading)....反正我这边经常这样,如果不会的话当然最好用啦!
Find By xpath
提供了该元素的XPATH表达式
当然不推荐用哈,毕竟是绝对路径,太长了..........还是自己写吧!
那串黄色背景色的英文
不建议使用XPath定位器,因为它很脆弱,建议让开发团队提供独特的可访问性定位器(即:resource-id)
Attribute - Value
属性列表,后面用一篇文章单独讲解哦
Search for element 的详细介绍
选择你要校验的定位类型,然后输入你写的表达式,最后【Search】,就可以看到结果了
如果能找到Elements的话表达式就是正确的哦,然后你还可以针对该元素进行一些操作
Start Recording 的详细介绍
- 点击开始录制之后,再点击Tap By Coordinates,进入界面可操作状态
- 然后就可以开始点击你想要的元素了,这个时候就开始录制了
- 最后在Recorder下面会显示对应的代码,右侧可以选择不同的语言
- 建议:不要过多使用该功能;可以看到录制的代码是根据坐标去定位元素的,换个手机同一个元素坐标可能就不同了,可移植性不高