51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4104|回复: 2
打印 上一主题 下一主题

求助,monkeyrunner自动化测试,如何点击控件对象

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2014-5-7 19:37:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Android自动化测试中,很多时候我们的app里的控件有的没有ID,有的ID值重复的。查找 文章《Android自动化测试之Monkeyrunner解决ID重复问题》中的解决办法。
我现在遇到控件对象ID值重复的问题。
目前使用其提供的函数:
def getChildView(device,parentId, *childSeq):
    hierarchyViewer = device.getHierarchyViewer()
    str_getchildview="hierarchyViewer.findViewById('" + parentId +"')"   
    for index in childSeq:      
        str_getchildview+=('.children[' + str(index) + ']')         
    exec 'child_view=' + str_getchildview
    return child_view

调用时,使用:
device = MonkeyRunner.waitForConnection()
easy_device = EasyMonkeyDevice(device)
delete_photo=getChildView(device,'id/expanded_menu', 0, 0, 0)
获得控件的对象,打印出:
print str(delete_photo)
的值是:android.widget.TextView@439ec858
这是正确的。
我想单击这个控件对象delete_photo,但实现不了。
使用easy_device.touch('delete_photo',MonkeyDevice.DOWN_AND_UP)
和device.press('delete_photo',MonkeyDevice.DOWN_AND_UP)
都不行。
请教怎么实现点击控件对象delete_photo的功能呢?
请求大家的帮助。谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2014-5-15 17:28:58 | 只看该作者
已经解决,通过获取此控件对象的坐标属性值,加上偏移值,计算出正确的坐标值。
再点击此坐标即可。
point = hierarchy_viewer.getAbsoluteCenterOfView(delete_photo)
#偏移值,需要通过hierarchyviewer.bat查看
offset_x = 0
offset_y = 87
button_x = point.x+offset_x
button_y = point.y+offset_y
#点击此坐标
device.touch(button_x, button_y, MonkeyDevice.DOWN_AND_UP)
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 07:51 , Processed in 0.070881 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表