pcoo常用的的语法:
androidpoco定义方法
from poco.drivers.android.uiautomation import AndroidUiautomationPoco dev = connect_device("android:///" + devices) Androidpoco = AndroidUiautomationPoco(device=dev, use_airtest_input=True, screenshot_each_action=False)
unitypcoo定义方法方法
from poco.drivers.unity3d import UnityPoco dev = connect_device("android:///" + devices) poco = UnityPoco(device=dev)
cocos-luapoco定义方法
from poco.drivers.std import StdPoco poco = StdPoco()
cocos-js poco定义方法
from poco.drivers.cocosjs import CocosJsPoco poco = CocosJsPoco()
iospoco定义方法
from poco.drivers.ios import iosPoco poco = iosPoco()
StdPoco定义方法
from poco.drivers.std import StdPoco from poco.utils.device import VirtualDevice poco = StdPoco(15004, VirtualDevice('localhost'))
启动apk
start_app(packname) # 启动app
杀死apk进程
stop_app(packagename)
最简单的操作就是点击(click),也可以长按(long click),按多久都行,下面例子展示点击和长按各自的效果。
poco('bg_mission').click() poco('bg_mission').click('center') poco('bg_mission').click([0.5, 0.5]) # equivalent to center poco('bg_mission').focus([0.5, 0.5]).click() # equivalent to above expression
下面例子展示如何使用swipe
joystick = poco('movetouch_panel').child('point_img') joystick.swipe('up') joystick.swipe([0.2, -0.2]) # swipe sqrt(0.08) unit distance at 45 degree angle up-and-right joystick.swipe([0.2, -0.2], duration=0.5)
循环点击某个父节点下的所有子节点
for Off in poco("AchievementTrophyParent").offspring("off"): Off.click()
等待某个元素出现,不出现则报错,默认120s
try: poco("BtnStart").wait_for_appearance(timeout=120) except: print("none")
等待某个元素消失,不消失,则报错,默认120s
try: poco("BtnStart").wait_for_disappearance(timeout=120) except: print("none")
判断某个元素是否出现在当前屏幕上
if poco("Return").exists():
对于以列表形式出现的控件操作
for item in range(len(poco("TeamDlg(Clone)").offspring("Dungeons").child("Panel").child())):
item1 = "item" + str(item)
poco("TeamDlg(Clone)").offspring("Dungeons").offspring(item1).click()
更改UI元素的属性值。并非所有属性都可以转换为文本。如果改变了不可变属性或不存在的属性,将引发InvalidOperationException异常