使用Adt自带的工具进行Android自动化测试(三)

在这个系列的上一篇文章中,我们介绍了MonkeyRunner,并提到如果根据坐标来编写自动化脚本的话存在着一定的局限性(点击文末“阅读原文”可以打开这篇文章查看)。这篇文章将进一步介绍根据控件的id来编写自动化脚本的方法


根据控件的id来操作控件

从Android 2.3.3开始,MonkeyRunner增加了EasyMonkeyDevice和By这两个类,它们都位于com.android.monkeyrunner.easy包内,借助这两个类,我们就可以根据控件的id来操作控件。

在这个系列的上一篇文章中,我们展示了搜狗手机浏览器在进入设置页面后,不同的分辨率下控件的绝对坐标并不相同。

技术分享

这时如果我们想要点击其中一个控件,比如说更换皮肤,就要用到下面的方法:

技术分享

其中id/rl_preference_skin就是更换皮肤这个控件的id,那么怎样才能知道每个控件的id是什么呢?可以借助Adt的另外一个工具HierarchyViewer


使用HierarchyViewer查看控件的id

HierarchyViewer的可执行文件叫做hierarchyviewer.bat,跟monkeyrunner.bat在同一个目录下,运行后会出现这样的界面

技术分享

列表中列出了正在运行中的Activity,点击搜狗手机浏览器设置界面的Activity——,可以解析出整个界面的布局,这个过程可能稍微有些慢。

技术分享


应用的布局有时是非常复杂的,我们不需要一点一点的找,可以在右下角的示意图中点击我们想查看的控件,这时控件就会在左侧的控件树中被选中。

在左侧的控件树中,列出了控件的基本信息,比如我们需要的控件id。

技术分享


最后需要说明的是,根据控件的id来操作控件要求设备开启了ViewServer,现在大部分设备都是没有开启ViewServer的,如果实在找不到开启了ViewServer的设备,就使用模拟器吧。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。