news 2026/4/28 0:28:08

Poco框架实操:获取节点属性的高效技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Poco框架实操:获取节点属性的高效技巧

上期推文我们介绍了Poco UI树下的节点关系,以及通过节点关系去寻找我们所需要节点的方法,那么本周我们来分享一下,当我们寻找到所需要节点后,能获取到什么信息呢?又怎么去获取呢?

Poco节点的属性操作

2.1 获取控件文本属性:get_text( )

在UI自动化测试 中,获取节点的文本信息是常见的需求。Poco框架提供了get_text()方法,它能够轻松提取指定元素的文本内容。无论是按钮上的提示文字,还是列表项的显示内容,get_text()都能一一捕获,从而实现对节点的文字内容进行操作或展示。

poco("游戏增强器").get_text()
2.2 获取控件名字属性:get_name()

get_name()方法可以帮助快速获取元素的名称,这对于识别和操作节点控件非常重要。通过使用该方法,可以方便地获取到节点的名称,从而更好地进行元素的定位和后续操作。

poco("文本输入").get_name()
2.3 获取控件尺寸大小属性:get_size()

了解节点控件的尺寸对于测试控件的布局和设计等至关重要。get_size()方法提供了一种简便的方式来获取元素的宽度和高度,可以确保元素在不同设备和分辨率 上的正确显示。

poco("文本输入").get_size()
2.4 获取控件的顶部、右侧、底部和左侧的归一化坐标系:get_bounds()

get_bounds()方法返回节点元素的边界框参数,包括元素的顶部(top)、右侧(right)、底部(bottom)和左侧(left)这些与标准坐标系中屏幕边缘的归一化坐标。这些信息可以用于截图控件、点击控件等,可以更好地规划自身的脚本设计。

poco("文本输入").get_bounds()
2.5 获取控件位置大小属性:get_position()

get_position()返回控件元素的中心坐标,通常以相对坐标(x,y)返回坐标,通过获取控件元素的中心坐标,我们可以在需要的时候更快地定位到该位置,从而实现一些交互操作。

poco("播放").get_position()
2.6 获取控件属性:attr("type")

attr("type")方法可以检索节点的特定属性值,需要在括号内输入所需要的属性值(需要以字符串的形式输入),即可查询到所需要的属性值。当上述查询属性的语句都无法查询到自己所需要的属性值的情况下,可以通过attr("type")去进行查询。

poco("文字输入").attr("text")

实际使用案例

结合上述所讲的获取控件方法,我们用个小小的案例去演示一下日常使用的场景。

参考代码如下:

# -*- encoding=utf8 -*- __author__ = "Airtest" from airtest.core.api import * auto_setup(__file__) from poco.drivers.android.uiautomation import AndroidUiautomationPoco poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) #打开网易云音乐app start_app("com.netease.cloudmusic") sleep(6.0) #【使用get_text】获取当前输入在搜索框上的文字 tem = poco("com.netease.cloudmusic:id/searchHintText").get_text() print("目前搜索框内的文字是:" + tem) #【使用get_name】获取“每日推荐”在UI树上的节点名 name = poco(text="每日推荐").get_name() print("该控件的name为:" + name) #点击进入每日推荐界面 poco(text="每日推荐").click() #【使用get_size】获取在“每日推荐”界面上的广告大小 adsize = poco("com.netease.cloudmusic:id/daily_ad_banner").get_size() print("该广告位的长宽大小为:" + name) #【使用get_bounds】获取在“每日推荐”界面上的广告顶部、右侧、底部和左侧的归一化坐标系 adbounds = poco("com.netease.cloudmusic:id/daily_ad_banner").get_bounds() str(adbounds) print(f"该广告位的顶部、右侧、底部和左侧的归一化坐标系分别为:{adbounds}") sleep(1.0) #【使用get_position】获取在“每日推荐”界面上的广告位置坐标 adpos = poco("com.netease.cloudmusic:id/daily_ad_banner").get_position() str(adpos) print(f"该广告位的位置坐标为:{adpos}" ) sleep(1.0) #【使用attr去查询】获取在“每日推荐”界面上的广告位置坐标 adpos2 = poco("com.netease.cloudmusic:id/daily_ad_banner").attr("pos") str(adpos2) print(f"利用attr获取的位置坐标为:{adpos2}" ) sleep(1.0)

小结

本周我们介绍了5种查询Poco 节点属性值的方式,其中包括:

1、get_text( )获取节点的text属性值

2、get_name( )获取节点的name属性值

3、get_size( )获取节点的size属性值

4、get_bounds( )获取节点的顶部、右侧、底部和左侧的归一化坐标系

5、get_positions( )获取节点的位置坐标

6、attr("type")获取所需要的属性值

通过这些方法,我们能够更深入地理解和使用Poco的UI树节点,可以更进一步地完善自己的脚本。如果同学们在使用Poco进行自动化测试的过程中,遇到了问题,或者有任何想要深入了解的知识点,欢迎在官方交流群里告诉我们或者提交issue ,也欢迎大家投稿。后续我们会带来更多精彩的有关Poco专题内容,请大家持续关注我们,敬请期待哦!

最后:下方这份完整的软件测试 视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 0:25:32

全能纯净影音播放器,通吃所有格式——PotPlayer

文章目录全能纯净影音播放器,通吃所有格式——PotPlayer核心定位官方安全下载渠道极简安装与基础配置(一步到位)1. 安装2.以下是我的常用配置推荐,按需使用核心功能全流程实操高频刚需应用场景全能纯净影音播放器,通吃…

作者头像 李华
网站建设 2026/4/28 0:15:38

GPT-5.5智能体编程深度评测:82.7% Terminal-Bench 背后的AI编码革命

前言 4月21日,OpenAI正式发布GPT-5.5——被定位为"迄今最智能的AI智能体编程模型"。消息一出,开发者社区的反应比以往任何一次大模型发布都要复杂:有人兴奋,有人焦虑,还有人开始担心自己还有多少价值。 先…

作者头像 李华
网站建设 2026/4/28 0:12:14

终极麻将AI助手:Akagi实战部署与深度定制完整指南

终极麻将AI助手:Akagi实战部署与深度定制完整指南 【免费下载链接】Akagi 支持雀魂、天鳳、麻雀一番街、天月麻將,能夠使用自定義的AI模型實時分析對局並給出建議,內建Mortal AI作為示例。 Supports Majsoul, Tenhou, Riichi City, Amatsuki,…

作者头像 李华
网站建设 2026/4/28 0:07:59

Samsung Epis Holdings公布2026年第一季度财务业绩

• Samsung Bioepis 2026年第一季度营收达4549亿韩元,营业利润为1440亿韩元专注于生物制药和生物技术创新的投资公司Samsung Epis Holdings (KRX: 0126Z0)今日公布了其2026财年第一季度的财务业绩。Samsung Epis Holdings总裁兼首席执行官Kyung-Ah Kim表示&#xff…

作者头像 李华