airtest poco 通过绝对路径\相对路径获取元素

本文通过QQ应用示例,详细介绍了如何使用Poco工具进行UI自动化测试,包括获取UI元素的绝对路径及如何优化路径选择,提高测试效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先讲解下几个名词,知道的可以直接跳过

offspring表示后代,child表示子节点

 

我这里用QQ示例下:

获取绝对路径:

点击红色的锁屏按钮,再点击头像,左下角对应的ui树就会特别显示(蓝色框部分),再右键该行UI树复制,就会生成绝对路径代码

这里的绝对路径还不是很长,当绝对路径很长时,效率相对比较低,且容易报错找不到,这时可以缩短路径,从某个特别的节点开始,比如全局唯一的id,上边的路径可以这样改:

poco("com.tencent.mobileqq:id/ba1").click()

 

### AirTest使用 Poco 进行元素定位 #### 方法概述 在AirTest中,Poco库用于通过UI控件的属性来精确定位界面中的各个组件。这种方式相比图像识别更加稳定可靠,不受屏幕分辨率等因素的影响[^1]。 #### 安装依赖包 为了能够在项目里边使用`poco`功能,在安装好`airtest`之后还需要单独安装`pocoui`模块: ```bash pip install pocoui ``` #### 初始化Poco对象 通常情况下初始化一个`poco`实例如下所示: ```python from airtest.core.api import connect_device, device as current_device from poco.drivers.android.uiautomation import AndroidUiautomationPoco connect_device('Android:///') # 需要先连接设备 poco = AndroidUiautomationPoco(current_device()) ``` #### 基本查询语法 支持多种方式查找节点,比如按ID、文本、类名等条件匹配单个或多个目标节点: - **通过id定位** ```python button = poco("com.example:id/button_start") # 替换为实际应用内的view id ``` - **依据text内容** ```python text_field = poco(text="请输入用户名") ``` - **根据className筛选** ```python web_view = poco(className='android.webkit.WebView') ``` - **组合条件** 可以同时指定多个参数来进行更精确的选择 ```python item = poco(type='Button', text='登录').wait_for_appearance() ``` #### 执行操作 一旦获取到了对应的ui对象,则可以直接调用相应的方法完成点击、输入文字等一系列交互动作: ```python button.click() # 点击按钮 input_box.set_text("hello world!") # 向输入框内填入字符串 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值