MonkeyRunner这货的背景么~不多说,谷歌亲儿子,不过是最傻乎乎的一个,从名字来讲,比Monkey年龄大点~因为它已经会跑了。。它的优点么,就是指哪点哪。不像有些框架很矫情,一定要源代码,不能跨应用,不能怎样怎样~~不然我就罢工咯。。。但是缺点么,很明显,也是指哪点哪,由于MonkeyRunner的脚本一般都是根据屏幕坐标来做,换了分辨率,马上不好使,而你指的点是屏幕坐标点,不同的分辨率上相同坐标的位置肯定是不同的~所以,你懂的,一换分辨率马上玩完~特别是写起来特别费劲,因为要找坐标。。
接下来,不扯淡了,直接上干货。
步骤一、环境
请自行搭建Android的adb环境,百度一搜漫山遍野的,我就不多说了
步骤二、创建文件
建个写MonkeyRunner的文件,最好.py后缀,因为这货的语法是python的远房亲戚,当然你非要不用.py结尾也没关系
步骤三、码!
不多说,直接上示例代码~
#代码注释请用左侧这个符号即可
#首先,导入几个包
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
device = MonkeyRunner.waitForConnection()
#下面这行是加载该路径图片赋值给picture,路径请酌情修改,嗯python的赋值,基本什么都能给的
picture = MonkeyRunner.loadImageFromFile('d:/screenshot/example/1.png')
a=1
b=‘.png'
#写个循环,python是缩进式语法,所以请注意缩进~
for i in range (1,3):
o=str(a)+b
#输入字符串
device.type(“456785454123569875")
#点击屏幕900,1500的位置
device.touch(900,1500,”DOWN_AND_UP”)
#拖动,从200,1600,拖动到200,600,用时0.5秒,分2步进行
device.drag((200,1600),(200,600),0.5,2)
#歇二秒
MonkeyRunner.sleep(2)
#截图并将图片赋值给result
result = device.takeSnapshot()
#将result中的图片写入文件
result.writeToFile(‘d:/screenshot/example/'+o,'png')
#图片对比一下咯,相似度0.6就给过!
if result.sameAs(picture,0.6):
#哦耶过了!
print "pass"
else:
#可惜没过
print "fail"
MonkeyRunner.sleep(1)
a=a+1
MonkeyRunner.sleep(3)
#点击back键
device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP)
MonkeyRunner.sleep(1)
嗯,楼上注释已经解释的很清楚了吧?
步骤四、执行
然后请保存文件,连上手机,打开命令框,什么cmd,终端之类的各种叫法,然后输入,adb空格monkeyrunner空格拖入刚才保存的文件,回车观看手机屏幕
附录:
有人估计会问,坐标怎么来?
步骤如下:
1、点击设置
2、请找到开发人员选项
3、进入开发人员选项
4、找到指针位置开关
5、勾上该指针位置开关
预期结果:
手指触摸屏幕时,出现触摸痕迹,顶部显示当前手指触摸的坐标