一个编程大白,我在学自动化UI测试工具airtest。
airtest project界面.jpg
- 一、硬件软件的准备与连接
- 二、学习AirtestIDE官方文档
- 三、用Airtest对多台手机操控
- 四、纯python代码操控手机
学习AirtestIDE官方文档
AirtestIDE文档:http://airtest.netease.com/docs/cn/7_settings.html#
airtestIDE文档.jpg学习第6章:poco库
Poco是一款基于UI控件搜索的自动化框架
实际POCO实现如真人的点击操作手机,打开APP,等待界面,点击相应的图标,打开APP功能界,操作任务。
学习POCO,就相当于学习:点击,拖放APP,长按APP,网页加载时等待界面出现再点击。这些通过学习入门教学用例,就可详细了解。
** POCO API文档的入门教学用例: https://poco-chinese.readthedocs.io/zh_CN/latest/source/README.html#tutorials-and-examples
对实例,大白对以下几点来快速学习了:
一、 POCO库的安装
可以通过 pip来安装: (ps:正确的库名是:pocoui)
pip install pocoui
二、使用前的实例化:
#安卓实例
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
#poco实例化
poco = AndroidUiautomationPoco(use_airtest_input=True,
screenshot_each_action=False)
#unity3d实例
from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()
以上是2个最常用的实例。其它的实例参考:https://poco.readthedocs.io/en/latest/source/doc/poco_drivers.html
POCO支持的应用驱动:
三、使用poco对象选择UI元素对象
大白小结了一下,poco共设置4种选择UI元素对象的方法:
- 元素名(name)法
- 元素内容(text)法
- UI 路径(UI path)法
- UI坐标法
元素名(name)法与元素内容(text)法
AirtestIDE中选中UI,则可以在LOG查看器中显示:name与text
poco对象UI选取法text与name法.jpg
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
#poco实例化
poco = AndroidUiautomationPoco(use_airtest_input=True,
screenshot_each_action=False)
#选取:
poco(text="看一看").click()
或:
poco(name="android:id/title").click()
UI 路径(UI path)法:
AirtestIDE中选中UI,则可以选中路径后鼠标右键,得到UI 路径:
poco("com.tencent.mm:id/bp").offspring("android:id/list").child("com.tencent.mm:id/d9u")[2].child("com.tencent.mm:id/m5").offspring("com.tencent.mm:id/l5").child("android.widget.LinearLayout").offspring("android:id/title")
poco对象UI选取法UI 路径法.jpg
UI坐标法
所说的坐标,总以左上角为(0,0),右下角为(1,1).
也就是说:在poco中,坐标始终从0到1标准化。您可以简单地将其视为百分比大小和位置。
此方法好处是:可以简单快速定位;坏处是:程序不能移植到不同屏幕大小的手机中。
AirtestIDE中可以设置选项,这样在界面中可能显示详细的坐标值。
UI坐标g
代码实例:
# -*- encoding=utf8 -*-
__author__ = "Administrator"
from airtest.core.api import *
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
# script content
print("start...")
# generate html report
# from airtest.report.report import simple_report
# simple_report(__file__, logpath=True)
pp = poco(name="com.bbk.launcher2:id/item_title")
print(len(pp))
#打印出每一个UI的texts
for pname in poco(name="com.bbk.launcher2:id/item_title"):
print(pname.get_text())
#等待理财UI出现,才执行下一句
poco(text='理财').wait_for_appearance()
poco(text="理财").long_click()
poco(text="理财").swipe('down')
网友评论