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

这篇具有很好参考价值的文章主要介绍了Poco框架实操:获取节点属性的高效技巧(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

一、前言

上期推文我们介绍了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框架实操:获取节点属性的高效技巧(一)

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

三、实际使用案例

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

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

参考代码如下:

# -*- 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专题内容,请大家持续关注我们,敬请期待哦!


AirtestIDE下载:airtest.netease.com/
Airtest 教程官网:airtest.doc.io.netease.com/
搭建企业私有云服务:airlab.163.com/b2b

官方答疑 Q 群:526033840文章来源地址https://www.toymoban.com/news/detail-857573.html

到了这里,关于Poco框架实操:获取节点属性的高效技巧(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 解密:GPT-4框架与训练过程,数据集组成,并行性的策略,专家权衡,推理权衡等细节内容

    大家好,我是微学AI,今天给大家解密一下GPT-4框架与训练过程,数据集组成,并行性的策略,专家权衡,推理权衡等细节内容。2023年3月14日,OpenAI发布GPT-4,然而GPT-4的框架没有公开,OpenAI之所以不公开GPT-4的架构,并不是因为存在对人类的潜在威胁,而是因为他们所建立的

    2024年02月16日
    浏览(11)
  • 【AWS】实操-保护 Amazon S3 VPC 终端节点通信

    【AWS】实操-保护 Amazon S3 VPC 终端节点通信

    数据安全至关重要。Amazon Web Services (AWS) 提供了多种解决方案和最佳实践来帮助保护数据的安全。了解如何做出最佳决策来保护数据的安全,这项任务可能具有挑战性。 在无路由指向互联网的私有子网中运行应用程序,可将攻击面限制为仅限内部流量,从而实现数据安全。

    2024年02月10日
    浏览(12)
  • 【HTTP爬虫ip实操】智能路由构建高效稳定爬虫系统

    【HTTP爬虫ip实操】智能路由构建高效稳定爬虫系统

    在当今信息时代,数据的价值越来越受到重视。对于许多企业和个人而言,网络爬取成为了获取大量有用数据的关键手段之一。然而,在面对反爬机制、封锁限制以及频繁变动的网站结构时,如何确保稳定地采集所需数据却是一个不容忽视且具挑战性的问题。 幸运的是,我们

    2024年02月09日
    浏览(16)
  • 【web系列十三】vue3实操技巧

    目录 写在前面 纯前端 生命周期钩子 前后端都需要 通信 父组件向子组件传值用props 父组件触发子组件事件用defineExpose 子组件向父组件传值(触发事件)用$emit 发送axios同步请求 下载zip文件 开发小技巧 语法 script proxy对象解析 布局 浮动布局 flex 动态开关组件 页面缓存 添加

    2023年04月20日
    浏览(23)
  • Labview局部变量、全局变量、引用、属性节点、调用节点用法理解及精讲

    Labview局部变量、全局变量、引用、属性节点、调用节点用法理解及精讲

    写本章前想起题主初学Labview时面对一个位移台程序,傻傻搞不清局部变量和属性节点值有什么区别,概念很模糊。所以更新这篇文章让大家更具象和深刻的去理解这几个概念,看完记得点赞加关注喔~ 本文程序源代码附在后面,大家可以自行下载学习。 本文的结构还是首先教

    2024年01月20日
    浏览(11)
  • Linux设备树:删除节点和属性的方法

    Linux设备树:删除节点和属性的方法

    [ 摘要 ]:本文主要介绍了在设备树中删除节点(node)和属性(property)的方法。为了便于理解,笔者先介绍了 dtsi 和 dts 的关系,然后构建了虚拟的需求场景,最终给出示例。 设备树文件可以分为 dtsi 和 dts 两种类型。dtsi 类似于 C 语言中的头文件,供其他设备树文件引用,

    2024年02月07日
    浏览(24)
  • JavaScript【Text 节点、Node 节点属性(nodeName、nodeValue 、textContent、nextSibling、previousSibling)】(十二)

    目录 Text 节点 Text节点属性 Text节点方法 appendData() deleteData()  insertData()  replaceData()

    2024年02月12日
    浏览(6)
  • GitHub高效搜索技巧

    1.排序搜索结果 按交互排序 语法 例子 org:github sort:interactions 匹配 GitHub 拥有的存储库中的问题,按反应和评论的最高组合数排序 org:github sort:interactions-asc 匹配 GitHub 拥有的存储库中的问题,按最少的反应和评论组合数排序 按反应排序 语法 例子 org:github sort:reactions 匹配 GitH

    2024年02月15日
    浏览(8)
  • 前端xss攻击——规避innerHtml过滤标签节点及属性

    前端xss攻击——规避innerHtml过滤标签节点及属性

    大家好,我是yma16,本文分享xss攻击——规避innerHtml过滤script等动态js节点。 xss攻击 XSS(Cross-Site Scripting)攻击是一种常见的网络安全漏洞,它允许攻击者将恶意的脚本代码注入到网页中,当用户通过浏览器访问这个网页时,这些恶意代码就会被执行,从而使攻击者能够窃取

    2024年04月09日
    浏览(15)
  • neo4j批量追加属性、节点、关系

    前提:这个方法是用python连接neo4j再循环执行cql语句来实现的,适合1w条记录以内的数据,太大了就比较慢,平均1s执行30条语句左右。 主要的不同就在于cql语句的使用 连接数据库: 读取节点表和关系表,该文件是存储好的csv文件 中文是替代的文件名字,不是源文件名 替换

    2024年02月16日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包