Template 对象
- Template 对象是airtest中常用和基础的类,在touch/swipe中需要用到此对象
Template(filename, threshold=None, target_pos=5, record_pos=None, resolution=(), rgb=False, scale_max=800, scale_step=0.005) - filename: 图片路径
- threshold:识别阈值,[0.0, 1.0],默认0.7,相似度达到0.7及以上表示匹配
- target_pos: 图片点击位置,[1,9],默认是5,正中心
- record_pos: 录制时在屏幕上的位置
- resolution:录制时屏幕分辨率
- rgb: 识别结果是否使用rgb三通道进行校验, 默认是False
- scale_max: 多尺度模板匹配最大范围.默认是800
- scale_step: 多尺度模板匹配搜索步长.默认是0.005
API
home():返回device的主页面
适用平台: Android, iOS
使用方法:home()
wake(): 唤醒设备
适用平台: Android
使用方法:wake()
init_device(platform=‘Android’, uuid=None, **kwargs): 初始化设备
platform:平台Android,Windows,IOS
uuid:Android 的序列号, Windows 的句柄, iOS 的 uuid
使用方法:init_device(platform="Windows",uuid="123456")
connect_device(uri):链接设备
适用平台: Android, iOS
使用方法:
connect_device(“iOS:///127.0.0.1:8100”) # iOS device
connect_device(“iOS:///http://localhost:8100/?mjpeg_port=9100”) # iOS with mjpeg port
auto_setup(basedir=None, devices=None, logdir=None, project_root=None, compress=None): 设置运行环境并且连接设备
- basedir: 脚本路径
- devices:设备uri
- logdir:日志路径,默认是不保存的,如果设置为True保存在,/log目录下
- compress:图片压缩率[1,99],默认是10
使用方法:
auto_setup(file, devices=[“Android://127.0.0.1:5037/SJE5T17B17”], logdir=True, project_root=r"D:\test\logs", compress=90)
start_app(package, activity=None):启动app
ios package的获取方法
适用平台: Android, iOS
使用方法:start_app("com.netease.cloudmusic")
stop_app(package):关闭app
适用平台: Android, iOS
使用方法:start_app("com.netease.cloudmusic")
install(filepath, **kwargs): 安装app
适用平台: Android
使用方法:install(r"D:\demo\test.apk")
uninstall(package): 卸载app
适用平台: Android
使用方法:uninstall("com.netease.cloudmusic")
swipe(v1, v2=None, vector=None, **kwargs): 滑动操作
v1、v2可以是Template 对象也可以是绝对坐标(x,y)
适用平台: Android, Windows, iOS
使用方法:
swipe(Template(r"tpl1606814865574.png"), vector=[-0.0316, -0.3311])
swipe((100, 100), (200, 200))
text(text, enter=True, **kwargs):输入内容
- text :输入内容
- enter: 在输入内容后是否输入Enter键,默认是true
适用平台: Android, Windows, iOS
使用方法:
text("test")
text("test", enter=False)
keyevent(keyname, **kwargs): 设备上的按键操作
适用平台: Android, Windows, iOS
使用方法:
android
keyevent("HOME")
keyevent("BACK")
keyevent("KEYCODE_DEL")
更多详见https://developer.android.com/reference/android/view/KeyEvent#constants_1
Windows
keyevent("{DEL}")
keyevent("%{F4}") # close an active window with Alt+F4
keyevent("{DELETE}")
更多详见https://pywinauto.readthedocs.io/en/latest/code/pywinauto.keyboard.html
iOS 当前只支持以下三个按键
keyevent("HOME")
keyevent("volumeUp")
keyevent("volumeDown")
exists(v): template 是否存在
适用平台: Android, Windows, iOS
使用方法:
pos = exists(Template(r"tpl1606822430589.png"))
if pos:
touch(pos)
snapshot(filename=None, msg=‘’, quality=None, max_size=None): 截屏
filename: 截屏文件的名字,默认的路径是ST.LOG_DIR
msg: 图片的描述
quality:图片质量,[1,99],默认是10
max_size: 图片的最大尺寸, 比如:1200
适用平台: Android, Windows, iOS
使用方法:
snapshot(filename="test2.png", msg="test", quality=90, max_size=1200)
图片名字是test2.png, 大小不超过1200*1200,图片质量90
wait(v, timeout=None, interval=0.5, intervalfunc=None): 等待需要匹配的Template展示出来
适用平台: Android, Windows, iOS
使用方法:
def notfound():
print("No target found")
wait(Template(r"tpl1607510661400.png"), timeout=120, interval=3, intervalfunc=notfound)
sleep: 等待时间,单位是秒
适用平台: Android, Windows, iOS
使用方法:sleep(1)
assert
学习文档:https://airtest.readthedocs.io/en/latest/all_module/airtest.core.api.html#airtest.core.api.touch