App自动化测试 元素定位(1)

接触过 UI 自动化的同学都应该清楚,当你要使用自动化工具操作界面元素时,首先必须要找到这个元素。在 Web UI 中,我们使用 selenium 进行自动化,定位方式的查看使用的是浏览器自带的开发者工具

在 App 测试中呢?如何查看页面元素?这又不像 Web 页面,有浏览器。就会很困惑!

App 由于没有基于浏览器运行,那就需要借助一些工具了。目前主要有两种:

  • 由 Google 提供,在 Android SDK 环境 tools 目录下的 UIAutomatorviewer
  • 由 Appium 桌面版提供的定位工具,inspector

注意,这里讲的定位工具都是针对原生应用。混合应用和 web 应用后面再专门来谈。

没有 Android SDK 的同学请参看《Android Appium环境搭建》

那么哪个工具好用方便呢?都难用! # 手动捂脸 (*/ω\*)

但是难用归难用,总还得用啊。当然还有一种套路,根据页面上显示的文字来定位,这个需要自己封装方法,这个后面专门讲。

先讲讲难用的工具们吧!

UIAutomatorviewer

你可以在 Android SDK 目录下的 tools 中找到它。

UIAutomatorViewer位置

点开后出现如下界面,当你连接模拟器后,就可以点击 ② 或 ③ 按钮连接设备桌面,用来查看页面元素。


UIAutomatorViewer

保证设备已经连接。可通过adb devices查看。(不熟悉 adb 命令的话请先看 adb 命令介绍

> adb devcices
List of devices attached
192.168.213.101:5555    device

在模拟器或设备上打开待测应用,这里以墨迹天气为例,点击 UIAutomatorViewer 上的 ② 按钮,连接设备,连接成功后界面如下:

UIAutomatorViewer
  • 左边部分为当前设备屏幕截图,可以直接点击你想查看的元素;
  • 右边部分分为上下两部分:上半部分为元素的层级,下半部分为当前选中元素的属性展示。

如果连接不成功,重启一下 adb 服务。

在实际使用过程中,可以将页面截图保存下来,以后在写自动化脚本的时候,不用每次都连接设备打开 App,可以直接打开保存的截图,方便快捷。

保存后有两个文件,屏幕截图和 xml 格式的屏幕层级关系(uix文件):


UIAutomatorViewer 保存

下次使用时直接打开保存的截图就可以进行定位了。


打开已保存的截图

下面是一个大致的 Appium 和 Selenium 定位方式的区别:

定位方式 Appium Selenium 说明
id resource-id id 唯一性较强的定位方式
class name class class web 中的 class 为 css 样式类,而 App 中表示控件类型
name text name Appium 1.5 以前 name 定位使用 text 属性,1.8 以后取消
accessibility id content-desc Android中独有的定位方式
xpath 使用class表示层级 使用标签名表示层级 //android.widget.TextView[@resource-id="com.moji.mjweather:id/cm3"]
css selector css 选择器语法
UIAutomator 使用 Android 官方测试框架 UIAutomator 定位 Android 独有定位方式

其余 selenium 中的定位方式,如 link text 等,在 Appium 中不存在。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354