编程语言
首页 > 编程语言> > python+airtest来做UI自动化

python+airtest来做UI自动化

作者:互联网

首先推荐一个学习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

 

标签:视频,截图,python,poco,UI,坐标,airtest,android
来源: https://www.cnblogs.com/testling/p/16284869.html