在uiSelector

时间:2019-04-02 13:07:32

标签: android appium uiautomator

我想浏览一些复选框及其所属的TextView。我可以设法选择复选框的TextView布局,但是另一种方法不起作用,因为TextView周围还有一个附加的层次结构级别。

层次结构如下

<ListView>
   <LinearLayout>
      <RadioButton> : checked
      <RelativeLayout>
         <TextView> : ABC
         <TextView>
      </RelativeLayout>
    </LinearLayout>
    <LinearLayout>
      <RadioButton> : unchecked
      <RelativeLayout>
         <TextView> : DEF
         <TextView>
      </RelativeLayout>
    </LinearLayout>
</ListView>

如果我想单击选中的单选框的TextViews布局,则以下选择器将按预期工作:

new UiSelector().className("android.widget.RadioButton").checked(true).fromParent(new UiSelector().className(android.widget.RelativeLayout));

当我尝试另一种方法时,单击属于TextView“ DEF”的单选按钮,则该按钮不起作用,因为介于两者之间存在另一个层次结构级别,并且fromParent仅引用RelativeLayout中的另一个TextView和不是需要的RadioButton:

new UiSelector().text("DEF").fromParent(new UiSelector().className("android.widget.RadioButton"));

基本上,我只想单击属于TextView的RadioButton来获取指定的文本。在此示例中,我想检查TextView“ DEF”的当前未选中的RadioButton。 我想通过使用UiSelector来直接识别它,而不是通过在TextView uiObject上多次调用UiObject.getParent以便在层次结构中导航来逐步实现它。

谢谢

0 个答案:

没有答案