欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python使用monkeyrunner对录制脚本进行回放脚本

程序员文章站 2022-07-13 15:38:12
...

Android SDK与Python环境配置完毕,调用MonkeyRunner的MonkeyRecorder与MonkeyRunner接口启动脚本录制工具,脚本我命名为app_playback.py,把编写的脚本放在Android SDK安装目录下面的\tools目录下,与monkeyrunner.bat在同一级目录下:

#coding=utf8
#需要用到命令行参数列表因此导入sys
import sys  
#导入monkeyrunner用来操作设备
from com.android.monkeyrunner import MonkeyRunner   
#窗念一个命令哈希表,定义操作事件
CMD_MAP = {  
    'TOUCH': lambda device, arg: device.touch(**arg),  
    'DRAG': lambda device, arg: device.drag(**arg),  
    'PRESS': lambda device, arg: device.press(**arg),  
    'TYPE': lambda device, arg: device.type(**arg),  
    'WAIT': lambda device, arg: MonkeyRunner.sleep(**arg)  
    }  
#处理录制脚本文件
#定义两个参数:
#scriptfile----录制脚本的文件名
#device--------当前设备
def process_file(scriptfile, device):  
	#读取文件信息
    for line in scriptfile:  
		#文件以|进行分割
		#把命令放入cmd中
		#把命令操作之后的信息存入rest中
        (cmd, rest) = line.split('|')  
        try:  
            #将字符串rest当成有效的表达式来求值并返回计算结果
            rest = eval(rest)  
        except:  
            print 'unable to parse options'  
            continue
        #判断命令是否在	CMD_MAP中
        if cmd not in CMD_MAP:  
            print 'unknown command: ' + cmd  
            continue 
        #回放脚本中命令操作			
        CMD_MAP[cmd](device, rest)  
def main(): 
    #在命令行输入例如:
	#monkeyrunner app_playback "文件名[可以带有路径]"
    file = sys.argv[1]  
	#打开录制脚本
    scriptfile = open(file, 'r') 
	#对连接的对象创建一个对象
    device = MonkeyRunner.waitForConnection()  
    #调用回放函数,对脚本进行回放	
    process_file(scriptfile, device) 
	#关闭脚本文件
    scriptfile.close();  
#判断是否作为运行程序
#如果是运行main函数	
if __name__ == '__main__':  
    main()  

命令执行状态,如果第一次执行脚本时,会准备monkeyrunner与python环境,我执行命名如下:

python使用monkeyrunner对录制脚本进行回放脚本


上面一大坨是用于演示,首次执行脚本时候的操作;
执行成功后再次执行相同的命令,如果没有错误,说明脚本执行成功,你可以看到手机上的app被打开

上一篇: InfluxDB安装

下一篇: influxdb安装