python main.py --targets "bc_win2 bc_win1 bc_tz"
使用快捷键 F12 ,可用停止脚本;
--targets #目标,就是需要匹配的目标按钮等,图片名称,支持这些后缀vision.py/Validate_IMG_EXT = ["png","jpeg","jpg"]
目标名称的前两个字符用于关联相关动作
devicebind.py/sda_map = {"bc":["mouse","click"],
"kd":["keyboard","keyDown"],
"None":["mouse","move"]}
--max_step=100 #count_point 的最大匹配次数
--count_point="bc_tz" #匹配到这个目标max_step+1
--imgsdir="yys1080p" #目标存放目录
(用GOOGLE 的python-fire实现的命令行,命令行参数可以任意变)
在devicebind.py/下添加相关映射,可用支持更多动作
devicebind.py/PC_bind = {
"mouse":{"move":pag.moveTo,"click":pag.click},
"keyboard":{}
}
#可以支持android模拟器/物理机(需要连接ADB),需要额外两个实现 ADB抓图和发送命令,暂时未添加,以后会加入
devicebind.py/Andriod_bind = {}
main.py
和 mian_ceshi.py
中sensor --> robot -->executor(callbacks)
sensor
: 包装了抓图和匹配目标两个功能,用于获得目标坐标/当前状态executor
: 执行robot
发来的命令;通过调用ExecutorCallBack
实例实现统计、日志、通信等各种功能CMD = namedtuple("CMD",["device","action","code","status"],defaults=[None])
robot
: 负责执行sensor
获得目标坐标/当前状态;通过bind_status
生成相应命令CMD
,然调用executor
执行CMD
之所以把原来几行解决的问题搞OO这么繁琐,是为了支持分布式和可扩展