首先推荐一个学习airtest工具比较好的网站https://poco.readthedocs.io/en/latest/source/README.html 它是主要教poco的 ,非常强大,包含普通的app、游戏类app
1.问题来源
在游戏类app中,常常那些时装类资源检查时,是需要人物先穿上这个物品,然后进行旋转 来检查材质、是否穿模、显示等等,当大量的物品需要检查时,操作起来就非常繁琐,而且还容易弄错。
这时候通过游戏中的命令,来自动穿衣服。(已有)可以找开发来进行开发相关命令。
而利用python 来可以实现 自动化执行命令,并且旋转、并且录制视频
2.定位方式
(1)图像识别的方式 在airtest中点击touch 然后鼠标滑动进行截图。就会生成如下一串代码。
touch(Template(r”tpl1652843878534.png”, record_pos=(0.362, -0.224), resolution=(2160, 1080)))
(2)有时候我们并不像通过图像识别,而是想通过坐标来执行
在airtest中可以通过上述的 代码来print 这个坐标 具体写法如下:
这样就可以得到这个坐标了
print(touch(Template(r”tpl1652843878534.png”, record_pos=(0.362, -0.224))))
而点击坐标是通过poco来执行的
from poco.drivers.android.uiautomation import *
from airtest.core.api import *
poco = AndroidUiautomationPoco()
poco(坐标).click()
(3)通过poco辅助窗口 来获取控件的绝对位置,找到你需要的位置,然后右键 复制即可 就可以得到一个代码
例如:
poco("android.widget.FrameLayout").offspring("android.widget.EditText").set_text(f"{ids}")
通过 上述获得这个位置的绝对位置,然后set_text() 进行输入内容
以上是常用的三种定位方法。但是大部分都是使用的图像识别。但是为了代码执行率较高,可以采用多种方式并行的方式,哪个靠谱用哪个
3.截图和录制视频了
搞定了定位方式,那就是自己拼接代码执行逻辑了。然后进行截图和录制视频
截图是采用的工具自带的snapshot这个方法 后面接文件路径和名称,msg就是描述
snapshot(filename=f'image/screen/物品{i}.png', msg="截图验证")
录制视频
from airtest.core.android.adb import ADB
from airtest.core.android.recorder import Recorder
adb = ADB(serialno="ee8f76e8") #连接手机 手机的设备id
recorder = Recorder(adb)
recorder.start_recording(max_time=60) #视频的时间
recorder.stop_recording(output=f"image/video/outer{i}.mp4") # 文件命名为物品id
以上就是截图和录制视频了
4.关于滑动:
其实滑动文章开头里面的poco里面教程已经写的很清楚了,有兴趣的可以看看
这里只说一个方法,在进行滑动时,可以先利用airtest的工具 先点击swipe 然后进行截图开始的点,然后点击结束的点 这样就会生成一串代码
利用获取坐标的方式将开始的点这个图 获取到坐标,然后改为
swipe([633, 273], vector=[0.14, 0.0116]) #绝对坐标 +vector的方式 这样就不需要这个图了
airtest好用 YYDS
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/272455.html