入门monkeyrunner7-monkeyrunner demo3 EasyMonkeyDevice+hierarchyviewer +monkeyrunner+截图对比
1 #该demo为monkeyrunner测试安卓系统自带的计计算器 2 #测试图片对比,测试EasyMonkeyDevice对象,一些他的元素操作 3 #作者:Mads Spiral QQ:79523822 如有疑问留言或者加qq,验证wyx 4 #coding=utf-8 5 import sys 6 import time 7 from com.android.monkeyrunner import MonkeyRunner as mr 8 from com.android.monkeyrunner import MonkeyDevice as md 9 from com.android.monkeyrunner import MonkeyImage as mi 10 from com.android.chimpchat.hierarchyviewer import HierarchyViewer,ViewNode 11 from com.android.monkeyrunner.easy import EasyMonkeyDevice,By 12 13 #图片对比 14 def img(): 15 result1 = device.takeSnapshot() 16 result1.writeToFile(path+"第一张截图".decode('utf-8')+now+'.png','png') 17 #点击了按钮7,105.514 18 device.touch(105,514,'DOWN_AND_UP') 19 #输入8 20 device.type("8") 21 #拖动,坐标开始到坐标结束,0.1为所用时间,1,从9(461.490)到7(63,493) 22 #device.drag((461.490),(63,493),0.1,1) 23 result2 = device.takeSnapshot() 24 result2.writeToFile(path+"第二张截图".decode('utf-8')+now+'.png','png') 25 if(result1.sameAs(result2,0.9)): 26 #这里需要help,为什么控制台显示为乱码,知道的朋友请留言 27 #str1="搜索框图片对比成功" 28 #str1.decode('unicode').encode('gb18030') 29 #print str1 30 print "img success" 31 log.write("搜索框图片对比成功\n”) 32 else: 33 #str2="搜索框图片对比失败" 34 #str2.decode('unicode').encode('gb18030') 35 #print str2 36 print "img falied" 37 log.write("搜索框图片对比失败”) 38 #如果要从文件夹读取指定的图片 39 #result=MonkeyRunner.loadImageFromFile('D:/picture2/demo.png') 40 41 '''测试EasyMonkeyDevice的一些方法,一些方法请看 42 http://blog.csdn.net/zhubaitian/article/details/39992597''' 43 def easyMonkeyDevice(): 44 easydevice=EasyMonkeyDevice(device) 45 46 def easyMonkeyDevicetest(): 47 mr.sleep(5.0) 48 #触摸,下面两句话可以合成一句话easydevice.touch(By.id("id/mul"),MonkeyDevice.DOWN_AND_UP) 49 DisagreeButton=By.id("id/digit9") 50 easydevice.touch(DisagreeButton,MonkeyDevice.DOWN_AND_UP) 51 #输入 easydevice.type(By.id(""),'new') 52 #是否存在 easydevice.exist(By.id("")),返回一个bool值 53 #是否可见 easydevice.visible(By.id("")) 54 #获取该id控件的文本 easydevice.getText(By.id("")) 55 #获取该id控件的坐标 easydevice.locate(By.id("")) 56 57 #HierarchyViewer和ViewNode,获取控件的width、height、坐标、文本 58 def hieview(): 59 easyMonkeyDevice() 60 hv=easydevice.getHierarchyViewer() 61 hvid=hv.findViewById("com.android.calculator2:id/digit9") 62 print("Width: "+str(hvid.width)) 63 print("Height: "+str(hvid.height)) 64 hvview=hv.getAbsoluteCenterOfView(hvid) 65 print("vnT528dCoordinate1X: "+str(hvview.x)) 66 print("vnT528dCoordinate1Y: "+str(hvview.y)) 67 hvview2=hvT528d.getAbsolutePositionOfView(hvid) 68 print("vnT528dCoordinate2X: "+str(hvview2.x)) 69 print("vnT528dCoordinate2Y: "+str(hvview2.y)) 70 71 72 logpath='D:\\' 73 path='D:\\' 74 device=mr.waitForConnection() 75 if device: 76 print "connect device successed" 77 #若安装淘宝apk。参数是apk文件的位置,因为python不支持中文输入,所以在后面用了.decode('utf-8')这个方法转码。 78 #device.installPackage ('D:\\apk\\淘宝.apk'.decode('utf-8')) 79 now=time.strftime("%Y-%m-%d-%H-%M-%S") 80 log=open(logpath+"log"+now+".txt",'w') 81 activity='com.android.calculator2/com.android.calculator2.Calculator' 82 device.startActivity(activity) 83 mr.sleep(5.0) 84 #img() 85 easyMonkeyDevice() 86 easyMonkeyDevicetest() 87 hieview() 88 89 else: 90 print "connect device failed"