APP中的元素定位工具大致有三种:

  • uiautomatorviewer工具
  • Appium Inspector工具
  • Chrome Inspect工具

提示:本篇文章介绍Appium Inspector工具。

1、Appium Inspector介绍

之前我们说过Appium Server有两种启动方式,

  • 一种是Appium Desktop有图形界面的启动方式,称之为桌面版;
  • 另一种版本是通过npm安装,使用命令行参数启动的Appium Server

Appium Inspector工具就在Appium Desktop中,Appium InspectorAppium Desktop附带的一个元素定位检查器,用来调试定位应用程序很方便。

Appium Inspector工具同时支持Android系统和IOS系统中原生界面的元素定位。

2、Appium Inspector打开方式

Appium Desktop安装完成之后,双击打开。

说明:界面有 3 个 Tab 选项

  • Simple:默认配置,监听本机 4723 端口;
  • Advanced:高级设置,可以自定义Appium server端的配置,配置好后可以保存到Presets
  • Presets:修改Advanced高级设置中的配置项。

一般我们测试直接使用Simple即可,点击 Start Server 按钮,启动Appium server,并开启监听本机 4723端口。

开启服务后,界面跳转到服务端控制台,如下图所示:

提示:

控制台显示运行的脚本中的日志信息,右上角有 3 个按钮,分别是:

  • 第一个按钮 Start Inspector Session,开启Appium Inspector定位工具;

    注意:inspector会新开一个Session
  • 第二个按钮Get Raws Logs,下载当前控制台中的log信息;
  • 第三个按钮Stop Server,关闭当前的Appium server

有两种方式可以开启Appium Inspector工具,

  • 方式一:点击右上角三个按钮中的第一个(一个放大镜样子的按钮),打开Appium Inspector工具。
  • 方式二:点击左上角File-->New Session Window... Ctrl+N也可以打开Appium Inspector工具。

如下图:

Appium Inspector工具开启后的界面如下图:

3、Appium Inspector布局介绍

Appium Inspector布局如下图所示:

上图说明:

  1. 布局1是Appium Inspector服务的设置。

    Automatic Server :自动服务器。

    Custom Server :定制服务器。

    Select Cloud Providers :选择云提供商。

    我们一般使用Automatic Server即可:

    Will use currently-running Appium Desktop server http://localhost:4723

    将使用当前运行的Appium桌面服务器http://localhost:4723
  2. 布局2是高级设置。

    可以设置:

    Allow Unauthorized Certificates:允许未经授权的证书。

    Use Proxy:使用代理服务器。

    初学一般我们不进行高级设置。
  3. 布局3是Desired Capabilities参数设置。

    Desired Capabilities: 编写Desired Capabilities参数。

    Saved Capability Sets:已保存的Desired Capabilities,可以进行查看和修改。

    Attach to Session...:附加到会话...(用到的时候在说)

4、Appium Inspector工具的配置

1)Appium Inspector工具使用前提

  • 打开Appium Desktop,开启Appium Inspector工具。
  • 所测试设备是开机状态(手机或者模拟器)。
  • 确保电脑与设备是链接状态,也就是

    cmd进入命令行终端,

    输入adb connect 127.0.0.1:21503链接逍遥模拟器,

    输入adb devices能够获取设备名称。

2)Appium Inspector的服务器设置和高级设置

  • 服务器设置:选择Automatic Server(一定要记得点击一下,进行选中)
  • 高级设置:不进行设置

3)编写Desired Capabilities参数(重点)

可以在左侧一行一行手动添加,如下图所示:

提示:第二列的格式是针对第三列value值而言的。

也可以把Json格式的数据编辑好,直接粘贴在右侧JSON Representation里。

直接把Json格式的数据直接粘贴过来。

点击保存之后,数据会同步到左侧,如下图所示:

4)保存Desired Capabilities参数

如有需要,在编辑完成Desired Capabilities参数之后,可以对其进行保存,方便以后的管理和使用。

5)查看和修改已存储的Desired Capabilities

点击Saved Capability Sets标签页,可以查看和修改已存储的Desired Capabilities

6)开启Session,连接手机获取手机界面

点击Start Session,开启使用Appium Inspector工具。

如下图所示:

说明:

  • Appium Inspector需要我们手动创建一个session,其实也就是一个客户端,和Appium server连接,并且需要在Desired Capabilities里面填入一些参数。
  • 所需功能是在Desired Capabilities对象中编码的键和值,当请求新的自动化会话时,由Appium客户端发送到Appium Server服务器。Desired Capabilities告诉Appium驱动程序有关您希望测试如何工作的各种重要信息。最终Desired Capabilities将作为JSON对象发送到Appium
  • 所需功能的Desired Capabilities对象可以在WebDriver测试中编写脚本,也可以在Appium Server GUI中设置(通过Inspector会话中,就是上边的介绍方式)。

提示:

Appium Inspector能够不能抓取手机屏幕时,可以关闭和重启adb服务,或者重启Appium Inspector服务。

命令如下:

  • adb kill-server
  • adb start-server

5、Appium Inspector工具的使用

(1)Inspector 定位控件界面的详细介绍

上图说明:

  • 布局1:截图的手机界面

    可以点击选择元素。
  • 布局2:顶部操作栏

    从左往右的按钮依次是

    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。
  • 布局3:XML树

    以XML树的形式,展示界面上的控件布局。
  • 布局4:控件属性区域

    选择某个控件,在这里可以显示该控件的所有属性和值。

(2)Selected Element 的介绍

选择元素功能:

1)顶部的TapSend KeysClear

模拟用户的操作:

  • tap:相当于点击该元素。
  • send keys:输入值,针对输入框的操作。
  • clear:清空所有值。

建议:不建议用这些操作,因为很容易造成断开连接(左侧界面一直loading)....反正我这边经常这样,如果不会的话当然最好用啦!

2)Find By xpath

提供了该元素的XPATH表达式

不推荐用,绝对路径太长了..........还是自己写吧!

3)那串黄色背景色的英文

不建议使用XPath定位器,因为它很脆弱,建议让开发团队提供独特的可访问性定位器(即:resource-id)

4)Attribute - Value

属性列表。

(3)Search for element 的介绍

搜索元素功能,位置如下图:

点击弹出如下界面:

选择定位策略,如下图:

填写对应的定位表达式,如下图:

点击Search就可以进行元素定位了。

如果能找到Elements的话表达式就是正确的,然后你还可以针对该元素进行一些操作。

(4)在Appium Inspector中操作手机

当我们使用Appium Inspector定位工具获取到手机设置APP界面的时候,如下图:

点击顶部操作栏中的Tap By Coordinates按钮,使得手机界面变换可操作状态。

然后我们在左侧的手机界面中点击显示,就可以进入到显示的界面中了。

进入到显示之后,现在我们还是保持在可操作手机的状态。

之后我们就可以继续操作手机,也可以点击Select Element按钮,在当前页面中进行选择的元素。

我们也可以点击Back按钮,返回到设置APP的首界面。

提示:这一点Appium Inspector定位工具就比uiautomatorviewer定位工具方便多了。

(5)Start Recording 的介绍(了解)

  • 操作步骤:点击开始录制之后,再点击Tap By Coordinates,进入界面可操作状态。
  • 然后就可以开始点击你想要的元素了,这个时候就开始录制了。
  • 最后在Recorder下面会显示对应的代码,右侧可以选择不同的语言。
  • 建议:不要过多使用该功能,可以看到录制的代码是根据坐标去定位元素的,换个手机同一个元素坐标可能就不同了,可移植性不高。

6、UIAutomatorviewer工具和Appium Inspector工具对比

(1)UIAutomatorviewer 的局限性:

  1. 不能校验我们写的定位表达式是否正确定位到控件(类似浏览器上的F12)。
  2. 连接不够稳定。
  3. 不能模拟用户动作。

(2)Appium DesktopInspector的优势:

  1. 可以校验定位表达式(如:XPATH表达式)。
  2. 通过设置Desired Capabilities来连接手机,比较稳定。
  3. 可以模拟用户动作(如:点击,返回,滑动等操作)。
  4. 可以录制一系列操作,然后转换成代码。

提示:

学习或者编写脚本过程中,使用桌面版会方便一些,因为桌面版还提供了定位工具。

而实际运行的时候,使用Server版本会更灵活、更容易与CI工具进行集成。

说明:

我们先介绍Appium Inspector工具的使用,关于如何定位页面中的元素,之后的文章会详细说明。

参考:

『与善仁』Appium基础 — 18、元素定位工具(二)的更多相关文章

  1. 『与善仁』Appium基础 — 17、元素定位工具(一)

    目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...

  2. 『与善仁』Appium基础 — 19、元素定位工具(三)

    目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...

  3. 『与善仁』Appium基础 — 20、Appium元素定位

    目录 1.by_id定位 2.by_name定位 3.by_class_name定位 4.by_xpath定位 5.by_accessibility_id定位 6.by_android_uiautom ...

  4. 『与善仁』Appium基础 — 27、模拟手势点击坐标

    目录 1.模拟手势点击坐标 2.tap()用法 3.练习 4.弊端 1.模拟手势点击坐标 在定位元素的时候,你使出了十八班武艺还是定位不到,怎么办呢?(面试经常会问) 那就拿出绝招:点击元素所在位置的 ...

  5. 『与善仁』Appium基础 — 28、webview的操作方式

    目录 1.先了解什么是Hybrid(混合) 2.识别Webview 3.context上下文 4.Webview和原生页面之前的切换 5.综合练习 我们之前说过的所有操作,都是对原生页面的操作. 在手 ...

  6. 『与善仁』Appium基础 — 22、获取元素信息的操作(一)

    目录 1.获取元素文本内容 (1)text()方法 (2)get_attribute()方法 (3)综合练习 2.获取元素在屏幕上的坐标 1.获取元素文本内容 (1)text()方法 业务场景: 进入 ...

  7. 『与善仁』Appium基础 — 23、操作滑动的方式

    目录 1.swipe滑动 2.scroll滑动 3.drag拖拽事件 4.滑动方法小结 5.拓展:多次滑动 6.综合练习 在Appium中提供了三种滑动的方式,swipe滑动.scroll滑动.dra ...

  8. 『与善仁』Appium基础 — 25、APP模拟手势高级操作

    目录 1.手指轻敲操作 2.手指按下和抬起操作 3.等待操作 4.手指长按操作 5.手指移动操作 6.综合练习 APP模拟手势的动作都被封装在TouchAction类中,TouchAction是App ...

  9. 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍

    目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...

随机推荐

  1. MyBatis源码分析(一):从JDBC到MyBatis 介绍MyBatis的背景,为什么要用MyBatis

    一.介绍JDBC JDBC全称Java Database Connectivity,是Java语言规范客户端访问数据库的应用程序接口,所面向的数据库类型为关系型数据库. JDBC的三层架构图: JDB ...

  2. 最后的OI(HAOI2020游记)

    马上就省选了,怎么不得写点什么?要不然到最后或许就真的落得个白茫茫大地真干净的局面. 其实也不知道该说啥?我这一路走来,感觉挺赚的. 每一个OIer背后都有一个故事,所以,我有故事,你有酒吗? 依稀记 ...

  3. Windows7下面手把手教你安装Django - Hongten

    我所使用的操作系统是Windows7,内存是2G 在搜索了一些资料发现,对于Django的安装,详细的真的很少,都说的很简化,然而,这篇blog可以手把手教你成功安装Django 对于Django的详 ...

  4. asp.net中HttpCookie操作cookie的方法

    微软对HttpCookie的定义为"提供创建和操作各 HTTP Cookie 的类型安全方法." HttpCookie的构造函数一共有两个 1.HttpCookie(String) ...

  5. 大爽Python入门教程 3-2 条件判断: if...elif..else

    大爽Python入门公开课教案 点击查看教程总目录 简单回顾if 回顾下第一章的代码 >>> x = 5 >>> if x > 0: ... print(&q ...

  6. 性能优化 | Go Ballast 让内存控制更加丝滑

    关于 Go GC 优化的手段你知道的有哪些?比较常见的是通过调整 GC 的步调,以调整 GC 的触发频率. 设置 GOGC 设置 debug.SetGCPercent() 这两种方式的原理和效果都是一 ...

  7. python openpyxl、RESTful、Webservice接口 基础知识

    最近 在做接口测试的时候,遇到如下问题:如何通过数据驱动去做批量接口测试呢,我们的测试数据放在哪里去维护?下面整理出相关点,供大家参考 1.如何维护接口测试数据:放在excel文件中,通过python ...

  8. 痞子衡嵌入式:再测i.MXRT1060,1170上的普通GPIO与高速GPIO极限翻转频率

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1060/1170上的普通GPIO与高速GPIO极限翻转频率. 按照上一篇文章 <实测i.MXRT1010上的普通GP ...

  9. 修改eclipse中注释字体而不影响代码字体

    eclipse的注释字体大小如何修改?不改变代码的字体 貌似没有直接的办法,但是可以取个巧: Window --> Preferences --> General --> Appea ...

  10. JS中bind、call和apply的作用以及在TS装饰器中的用法

    目录 1,前言 1,call 1.1,例子 1.2,直接调用 1.3,将this指向另一个对象 1.4,传递参数 2,apply 2.1,例子 2.2,直接调用 2.3,将this指向另一个对象 2. ...