Poco框架实操:获取节点属性的高效技巧(一)
一、前言
二、Poco节点的属性操作
2.1 获取控件文本属性:get_text( )
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)
四、小结
get_text( ) 获取节点的text属性值
get_name( ) 获取节点的name属性值
get_size( ) 获取节点的size属性值
get_bounds( ) 获取节点的顶部、右侧、底部和左侧的归一化坐标系
get_positions( ) 获取节点的位置坐标
attr("type") 获取所需要的属性值


)
本文分享自微信公众号 - AirtestProject(AirtestProject)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。