【发布时间】:2021-03-26 14:29:40
【问题描述】:
我想点击下面页面源代码中的第一个 android.widget.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)).click()
你有什么想法吗?或者链接如何使用 UiSelector 的好例子?
Android、链式 UiSelector、UIAutomator、Appium、UiScrollable
【问题讨论】:
标签: android appium ui-automation