基于一种脚本框架的具体实现

基于一种脚本框架的具体实现

提前申明,笔者编程水平极其有限,很多东西都不懂,文章仅供参考

自己写的python脚本

有人曾说过,如果一个事情需要重复三次以上,最好写个脚本。

我深深地认同这句话,只是一直没有机会写一个。

前端时间看别人赚钱,脑袋里就有了写脚本的想法,正好没什么事便开始搞。

打开PyCharm写了一堆sleep啊,click啊,一个自动化的脚本就完成了。主要用到的库也就pyautogui、pygetwindow和time。

但是这样的自动化有个最大的问题,那就是程序会抢你鼠标,你在运行过程中做不了其他事情。而且所有代码都是你一个个打上去,没有用到OCR识别之类的算法,就会导致不够健壮。

那便需要一个脚本框架了,最差的框架也比sleepclick好。

MaaFramework基于图像识别的自动化黑盒测试框架

地址:https://github.com/MaaXYZ/MaaFramework

说起框架我就想到低代码,说起低代码我就想到了编程基础。现在回过头来看,编程其实学学变量、类、方法和循环什么的就行了,剩下的就找找框架做自己的东西,再不会再学,为时不晚。等全学完了再开始做东西是不现实的,同时是低效率的(对于业余程序员来说如此)。

打开项目地址后找到readme的即刻开始,把五个文档的内容全部看一遍。第一个快速开始的文档里有视频教程,建议看完。

快速开始里有项目模板,那个下载下来就可以用了。

然后根据文档里的任务流水线(Pipeline)协议把项目模板里的pipeline文件夹下的json文件改改就能实现自己需要的功能。

就像视频里说的一样,到这里为止你就学会了百分之八十的内容了,自己写个脚本是够用了。

启动测试是python -m MaaDebugger

Python 集成

只靠pipeline协议还是不行,有些需求还是实现不了,比如输入指定字段,如果每次都去json文件里改就太麻烦了,

点开文档里的集成文档,里面有Python集成示例,点进去。

有趣的是示例里一点注释都没有,笔者完全看不懂,毕竟之前是靠百度才勉勉强强写出sleepclick的水平。后来在群里问了问才勉强懂一点。

首先先在assets下新建一个python文件夹(忘了原来有没有了,有就不用建),然后把这个示例直接复制粘贴过去。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
async def init_resources(self):
user_path = "./"
Toolkit.init_option(user_path)

self.resource = Resource()
##改成你的这个项目文件夹到base
await self.resource.load("F:/project/MBD/assets/resource/base")

device_list = await Toolkit.adb_devices()
if not device_list:
print("No ADB device found.")
exit()

self.device = device_list[0]
self.controller = AdbController(
##改成测试里填写的那样
adb_path='G:/mumu/MuMu Player 12/shell/adb.exe',
address='127.0.0.1:16384',
)

再之后就是一些线程,同步异步之类的东西了,用我是用了,但其实一点没懂。


基于一种脚本框架的具体实现
http://milkyaw.online/2024/06/25/基于一种脚本框架的具体实现/
作者
Milkyaw
发布于
2024年6月25日
许可协议