安装 AirtestIDE,了解POCO
下载地址: Airtest IDE
使用文档:AirtestProject官方文档
poco介绍:Poco介绍
连接设备,打开游戏客户端(Unity为例)
在操作前,请确保需要测试的游戏客户端已经集成了poco-sdk,如果没有集成是获取不到UI元素的。
Poco-SDK接入指南: 官方文档
python连接设备脚本代码如下:
# 引入需要的包
from airtest.core.api import *
from airtest.core.android.android import Android
from poco.drivers.unity3d import UnityPoco
# 自动获取手机序列号
try:
deviceId = device().uuid
except:
deviceId = Android().uuid
# 连接设备
auto_setup(__file__, logdir=False, devices=["Android://127.0.0.1:5037/%s" % deviceId])
# 初始化UnityPoco
poco = UnityPoco()
一些poco操作方法的封装
from poco.exceptions import PocoNoSuchNodeException, PocoTargetTimeout
# 1.查找元素
def try_find(name=None, **kw):
try:
self.poco(name=name, **kw).wait_for_appearance(timeout=10)
return True
except PocoTargetTimeout:
return False
# 1.使用
if try_find(name="ui_test", text="测试"):
pass
# 2.点击元素
def try_touch(name=None, **kw):
try:
self.poco(name=name, **kw).click([0.5, 0.5])
except PocoNoSuchNodeException:
raise PocoNoSuchNodeException
# 3.使用
if try_find(name="ui_test", text="测试"):
try_touch(name="ui_test")
# 4.滑动元素
def swipe(name=None, pos=None):
try:
if not isinstance(pos, list):
raise TypeError("The input must be a list")
self.poco(name=name).focus([0.5, 0.5]).swipe(pos)
except PocoNoSuchNodeException:
raise PocoNoSuchNodeException
# 4.使用
swipe(name="ui_test", [0.2, -0.2])
# 5.获取元素text内容
def get_text(name=None):
try:
text = self.poco(name=name).get_text()
return text
except PocoNoSuchNodeException:
raise PocoNoSuchNodeException
# 5.使用
get_text(name="ui_test")
#6.设置text内容
def set_text(name=None, text=None):
try:
self.poco(name=name).set_text(text)
except PocoNoSuchNodeException:
raise PocoNoSuchNodeException
#6.使用
set_text(name="ui_test", text="test")