MonkeyRunner执行Python脚本实例——发送短信增强版

时间:2023-12-31 13:36:50

很久之前就写好的了,准备写个自动执行Monkey的脚本时才想到去找它,还是写在博客里找起来方便。

这次更新了批处理自动连接设备后执行Py脚本,结构如下图:

MonkeyRunner执行Python脚本实例——发送短信增强版

其中shotscreen为存放截图文件夹,sms.py为Py脚本,StartTest.bat为获得设备ID和调用Py脚本。

Start.bat中的代码如下:

 @echo off
rem 获取当前运行设备
adb devices > d:\SMSTest\devices.txt
rem 运行monkeyrunner 脚本
monkeyrunner d:\SMSTest\sms.py

sms.py中的代码和之前相比只是增加了读取devices.txt中的devices id,感觉方法不是很可靠,求大家支招。

 #导入我们需要用到的包和类并且起别名
import sys,time,datetime
import re
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi #读取设备ID i = 0
str = ''
for line in open('D:\SMSTest\devices.txt'):
if i==1:
str = line
break
i = i+1
p = re.compile(r'\s')
lis = p.split(str)
device_id=lis[0]
#连接设备
device = mr.waitForConnection(1.0,device_id)
if not device:
print >> sys.stderr,"fail"
sys.exit(1)
#定义要启动的Activity
componentName='com.android.mms/.ui.BootActivity'
#启动特定的Activity
device.startActivity(component = componentName)
mr.sleep(1.0)
#do someting 进行我们的操作
#新建短信
device.touch(57,747,'DOWN_AND_UP')
mr.sleep(1.0)
#输入 10086
device.type('')
#发送短信条数
for n in range(0,3):
#输入短信内容
device.touch(187,402,'DOWN_AND_UP')
device.type('hellomoto')
mr.sleep(1.0)
#发送短信
device.touch(432,380,'DOWN_AND_UP')
mr.sleep(1.0)
device.touch(51,752,'DOWN_AND_UP')
mr.sleep(3.0)
#创建时间字符串
t = time.strftime("%Y-%m-%d-%X",time.localtime())
t = t.replace(":","-")
#takeSnapshot截图
snapshot = device.takeSnapshot()
snapshot.writeToFile('D:
\\SMSTest\\shotscreen\\'+t+'.png','png');