文档详情

如何使用monkeyrunner与view进行交互.docx

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