一、前言
在自动化测试的实践中,我们发现许多同学在使用Poco框架进行控件定位时,对于节点之间的关系理解不够深入。那么本周让我们来详细讲解Poco框架中的child&children
、offspring
、sibling
和parent
等节点关系定位方法。
二、Poco定位节点的关系分析
2.1 child&children
从字面上看,可以很明显知道child
与children
表示的就是获取该节点下的子节点。如果是需要获取多个子节点,需要通过for去循环提取,不通过循环获取的话,默认都是提取第一个节点,但顺序编号从0开始。
其中child可以携带参数,可以获取指定的子节点,如:
poco("android.widget.FrameLayout").child("android.widget.LinearLayout")
但children
是不能携带参数的,是可以直接获取所有的子节点,但可以根据返回的子节点顺序进行指定,默认返回的是提取的第一个节点(顺序编号从0开始)如:
poco("android.widget.FrameLayout").children()[2]
2.2 offspring
offspring
是获取该节点的子孙节点,若需要输出多个子孙节点,使用for
循环去进行输出,默认输出为首个子孙节点。在使用过程中,如果不清楚自己所需节点的编号为多少,我们可以选择用for
输出后,按照顺序编号进行选择使用。
poco("com.netease.cloudmusic:id/bannerContainer").offspring()
可以根据输出的顺序,结合下图,其中下述语句表达为“每日推荐”控件:
poco("com.netease.cloudmusic:id/portal_rv").offspring()[10]