当前位置: 首页 > 知识库问答 >
问题:

如何使用Android用户选择器与Appium链接为父元素的子元素

魏风华
2023-03-14

我想点击第一个Android。小装置。EditText元素来自下面的页面源代码。源不包含任何有用的资源id

我已经做了xpath查询/*[./*[@text='Österreich']/*[@class='android.widget.EditText'][1]问题是我不能在这个地方使用xpath查询,我只能使用UiSelector,而且我没有太多通过UiSelector使用复杂选择器的经验。

                        <android.view.View index="6" package="com.android.chrome" class="android.view.View" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,711][465,800]" displayed="true">
                          <android.view.View index="0" package="com.android.chrome" class="android.view.View" text="  " checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,711][465,800]" displayed="true" />
                          <android.view.View index="1" package="com.android.chrome" class="android.view.View" text="Rechnungsadresse" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,711][465,744]" displayed="true" />
                          <android.view.View index="2" package="com.android.chrome" class="android.view.View" text="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,759][465,800]" displayed="true">
                            <android.widget.Spinner index="0" package="com.android.chrome" class="android.widget.Spinner" text="Österreich" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,759][465,800]" displayed="true" />
                            <android.widget.EditText index="1" package="com.android.chrome" class="android.widget.EditText" text="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,799][465,800]" displayed="true" />
                            <android.widget.EditText index="2" package="com.android.chrome" class="android.widget.EditText" text="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,799][465,800]" displayed="true" />
                            <android.widget.EditText index="3" package="com.android.chrome" class="android.widget.EditText" text="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,799][465,800]" displayed="true" />
                            <android.widget.EditText index="4" package="com.android.chrome" class="android.widget.EditText" text="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,799][465,800]" displayed="true" />
                            <android.widget.EditText index="5" package="com.android.chrome" class="android.widget.EditText" text="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" long-clickable="false" password="false" scrollable="false" selected="false" bounds="[15,799][465,800]" displayed="true" />

我试着跟着,但没用

new UiScrollable(new UiSelector().scrollable(true))
    .scrollIntoView(new UiSelector().text("Österreich")
    .fromParent(new UiSelector()
        .childSelector(new UiSelector().className("android.widget.EditText").instance(0))
    )
)

作为java中的代码,我使用的是getDriverWait()。findElement(MobileBy.AndroidUIAutomator(uiSelectQuery))。单击()

你知道怎么做吗?或链接以获取如何使用UiSelector的好例子?

Android、链式UiSelector、UIAutomator、Appium、UiScrollable

共有1个答案

阳兴朝
2023-03-14

我实际上是在看这个问题,希望得到答案。在我自己这边测试更多的时候,我相信以下内容应该对你有用

new UiSelector().className(android.widget.Spinner).childSelector(new UiSelector().className(android.widget.EditText).index(0))

我不认为你真的需要索引当它是第一个孩子,但仍然。

 类似资料:
  • 我正在使用TestCafe选择器来选择元素。这是一个复杂的Custin Child嵌套场景。 下面是HTML以了解我上面提到的内容: 在图片中,我提到了和,它们是父元素(具有相同的DOM),有一个grand grand child,而另一棵树中相同父元素的grand grand child是。我需要,但需要链接,因为所有父节点都有相同的DOM。

  • 问题内容: 我有一个带有标头元素的,我在其中加载了项: 在这种情况下,整个情况必须可见。 但是,如果为空,则可以使用CSS 选择器隐藏整个容器,如下所示: 现在,我正在使用选择器隐藏,但是整个都需要隐藏。 我知道JavaScript可以实现,但是在这种情况下,我需要单独使用CSS来实现,但是我不确定这是否可行。 问题答案: 我能提供的最好的方法(请记住,CSS没有父选择器)是将HTML重新组织为以

  • 问题内容: 是否有可能在CSS2中获得有序列表的第n个元素? (类似于CSS3) 仅供参考:我正在尝试将德语版本的Parcheesi编程为XHTML 1.1和CSS2兼容,并尝试通过使用有序列表来生成运动场,因此移动选项由数据结构预先确定。为了围绕中心定位,我想通过数字选择列表元素。 问题答案: 您可以将相邻的同级组合器与伪类一起使用,重复组合器的次数可以达到第n个孩子。 对于任何元素,均以开头,

  • 本文向大家介绍jQuery 选择元素的子元素,包括了jQuery 选择元素的子元素的使用技巧和注意事项,需要的朋友参考一下 示例 要选择元素的子代,可以使用children()方法。 更改元素所有子.parent元素的颜色: 该方法接受一个可选selector参数,该参数可用于过滤返回的元素。            

  • 本文向大家介绍Jsoup 使用CSS选择器选择元素,包括了Jsoup 使用CSS选择器选择元素的使用技巧和注意事项,需要的朋友参考一下 示例 您可以在此处找到支持的选择器的详细概述。

  • 问题内容: 如何使用选择器在CSS中选择元素的上述元素 在这里,我想使用class ,以便可以使用CSS选择器获取上述元素。 问题答案: 纯CSS不可能做到这一点…