【旅游官网源码】【Server2012源码】【抓次日涨停源码】monkeyrunner源码剖析

时间:2024-12-23 05:52:32 分类:强弱比较源码 来源:ugui源码下载

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

monkeyrunner源码剖析

如何使用monkeyrunner与view进行交互

       å¦‚何使用monkeyrunner与view进行交互

       android官方里的monkeyrunner只介绍了一些有限的ui测试方法. 比如只能指定坐标点模拟操作行为,源码旅游官网源码 测试结果对比只能通过截图进行简单对比结果. 当然我们可以聪明的来实现猜测到view视图的坐标点,那么我们就可以像robotium一样, 在monkeyrunner脚本中,对控件级的view视图进行交互操作.

       å¦‚何实现捕捉到当前activity展现的所有的控件**呢?monkeyrunner.jar 里目前有EasyMonkeyDevice.class 和 By.class , 提供了一些新的api, 很大的满足了一些高级需求.

       æœ‰å‡ ä¸ªblog文章对EasyMonkeyDevice类的api进行了一些示例, 非常浅显易懂.

       yan的博客 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_node.namedProperties.get(‘mText’).toString() if text.find(‘h**e any’) < 0: print ‘not find h**e any!’ else:

       print ‘find h**e any!’ print text

       æ€»ç»“: 如此这般,我们用monkeyrunner 也可以写出和robotium一样的脚本,可以对view object 进行操作. 而且可以和坐标点值的方法进行融合. 可以由很大的突破.