Monkeyrunner得id查找方法

发表于:2015-11-13 11:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:MyEyeOfJava    来源:51Testing软件测试网采编

  该方法是莹莹同学发现得,先感谢。
  实现方式如下:
from com.android.monkeyrunner import MonkeyRunner as MR
from com.android.monkeyrunner import MonkeyDevice as MD
from com.android.monkeyrunner import MonkeyImage as MI
from com.android.monkeyrunner.easy import EasyMonkeyDevice,By
device=MR.waitForConnection(10)
if device:
print("Connect device successful!")
else:
print("Connect device failed!")
device=EasyMonkeyDevice(device)
device.installPackage("D:\\MonkeyRunnerDemo\\Apps\\estore.apk")
device.startActivity(component="com.eshore.ezone/.StartActivity")
MR.sleep(3)
device.touch(By.id("id/btn_disagree"),device.DOWN_AND_UP)
  注意点:
  1.device需要用easymonkeydevice再次封装
  2.touch方法id的如何使用
  EasyMonkeyDevice类里面还有很多方法,包括exists(By)、getText(By)、type(By,String)、visible(By)等等。
  再来个长点的脚本:
from com.android.monkeyrunner import MonkeyRunner as MR
from com.android.monkeyrunner import MonkeyDevice as MD
from com.android.monkeyrunner import MonkeyImage as MI
from com.android.monkeyrunner.easy import EasyMonkeyDevice,By
from com.android.chimpchat.hierarchyviewer import HierarchyViewer as HV
from com.android.hierarchyviewerlib.device import ViewNode as VN
T528d=MR.waitForConnection(10)
if T528d:
print("Connect device successful!")
else:
print("Connect device failed!")
eT528d=EasyMonkeyDevice(T528d)
hvT528d=T528d.getHierarchyViewer()
T528d.installPackage("D:\\MonkeyRunnerDemo\\Apps\\estore.apk")
T528d.startActivity(component="com.eshore.ezone/.StartActivity")
MR.sleep(3)
vnT528d=hvT528d.findViewById("id/btn_agree")
print("Width: "+str(vnT528d.width))
print("Height: "+str(vnT528d.height))
vnT528dCoordinate1=hvT528d.getAbsoluteCenterOfView(vnT528d)
print("vnT528dCoordinate1X: "+str(vnT528dCoordinate1.x))
print("vnT528dCoordinate1Y: "+str(vnT528dCoordinate1.y))
vnT528dCoordinate2=hvT528d.getAbsolutePositionOfView(vnT528d)
print("vnT528dCoordinate2X: "+str(vnT528dCoordinate2.x))
print("vnT528dCoordinate2Y: "+str(vnT528dCoordinate2.y))
  附上运行结果:
  Width: 165
  Height: 49
  vnT528dCoordinate1X: 127
  vnT528dCoordinate1Y: 680
  vnT528dCoordinate2X: 45
  vnT528dCoordinate2Y: 656
  ViewNode类里面还有很多属性,包括parent(获取父控件)、children(获取子控件)、left、top等等,这里就不一个个挨着讲了,自己看吧,呵呵。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • thduanth
    2016-3-01 13:59:05

    推荐个android平台开发的好工具(无线UIViewer),手机端版本的 hierarchyviewer,可以直接在手机上检查UI控件的布局、位置、大小等,不需要再连数据线到PC看,可以尝试:http://download.csdn.net/detail/duantihi/9448886

    是安卓UI集成测试必备利器!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号