欢迎来到天天文库
浏览记录
ID:33369582
大小:53.51 KB
页数:5页
时间:2019-02-25
《如何使用monkeyrunner与view进行交互》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、如何使用monkeyrunner与view进行交互上一篇 / 下一篇 2013-07-0115:22:14/个人分类:Monkeyrunner查看(270) / 评论(0) / 评分( 0 / 0 )android官方里的monkeyrunner只介绍了一些有限的ui测试方法.比如只能指定坐标点模拟操作行为, 测试结果对比只能通过截图进行简单对比结果.当然我们可以聪明的来实现猜测到view视图的坐标点,那么我们就可以像robotium一样,在monkeyrunner脚本中,对控件级的view视图进行交互操作.如何实现捕捉到当前activity展现的所有的控件信息
2、呢?monkeyrunner.jar里目前有EasyMonkeyDevice.class和 By.class, 提供了一些新的api,很大的满足了一些高级需求.有几个blog文章对EasyMonkeyDevice类的api进行了一些示例, 非常浅显易懂.yan1391的博客 Android测试之初试Monkeyrunner。国外的 diego也写了一系列关于monkeyrunner的文章,并自己写了一些viewclientapis 可以下载到 ,非常不错.请大家参考,但是diego把博客写道了blogspot上, 哈,所以大陆的朋友们就郁闷了.只能翻墙看了.其实
3、以上所有文章主要通过使用了By,EasyMonkeyDevice,monkeydevice这3个类来实现与viewobject的交互. 那我们就对这3个类进行简单的剖析一下.访问这里 可以看到EasyMonkeyDevice和By的源码(在线浏览). 1. By.class 可以根据id获得viewobject. 例如我们有一个textview的id是id/account 那么我们就可以通过如下获得该viewobject.account=By.id(‘id/account’)2.EasyMonkeyDevice.class获得viewobject后,可以用Easy
4、MonkeyDevice类进行一些操作. getText(),touch(),type().分别为获得该viewobject的文本值, 进行触摸屏操作(其会获取viewobject的坐标值,并进行操作).type()则会先touch,然后输入字符.3.monkeyDevice 在线浏览源码#通过MonkeyDevice获取HierarchyViewer对象实例hierarchy_viewer=device.getHierarchyViewer()#通过HierarchyViewer获取ViewNode实例(一个viewnode实例代表一个控件)view_node=
5、hierarchy_viewer.findView(By.id(‘id/emptyText’))#获取控件内的文本text=view_node.namedProperties.get(‘mText’).toString()iftext.find(‘haveany’)<0:print‘notfindhaveany!’else:print‘findhaveany!’printtext 总结: 如此这般,我们用monkeyrunner也可以写出和robotium一样的脚本,可以对viewobject进行操作. 而且可以和坐标点值的方法进行融合. 可以由很大的突破.另发现
6、了一些问题,目前怀疑是androidmonkeyrunner.jar的bug.问题是EasyMonkeyDevice的touch()函数,不能对应用程序弹出的对话框正确的定位坐标值. 当一个应用程序弹一个对话框时(确认还是取消之类的对话框),当根据idtouch确定和取消时, 定位的坐标点错误,导致无法实现想要的功能.还未具体分析时什么时候对话框会产生能该问题. 为什么说可能是bug,是因为用tools里的HierarchyViewer进行察看时,发现该对话框的实际坐标显示位置有问题. 但渲染到手机屏幕确是正常的. 这导致, 通过hierachy获得的坐标值有问题
7、,点击操作无法触发对应的buttonview. Monkeyrunner API帮助文档 (2013-04-1117:01:05)转载▼标签: it分类: MonkeyrunnerMonkeyrunner API帮助文档 文档下载地址 http://vdisk.weibo.com/s/xcHlw/1365674074 内容为MonkeyRunner帮助 1、com.android.monkeyrunner.MonkeyRunner.alert 当前脚本的运行过程中显示警告对话框。对话框是模态,因此脚本停止,直到用户关闭对话框。 参数: 消
8、息 - 消
此文档下载收益归作者所有