首页 > 解决方案 > resourceIdMatches() 在 Appium UiSelector 中不起作用

问题描述

我正在使用适用于 Android 的 appium。

看一下随附的屏幕截图。我有 3 个 RecyclerView 类,每个类都有自己的 ID。

我想滚动具有 ID 的第二个 RecyclerView,timePickerRecyclerMinutes直到找到我需要的值。我有以下查询,但它不起作用:

String query = "new UiScrollable(new UiSelector().resourceIdMatches(\"*:id/timePickerRecyclerMinutes\")).scrollIntoView(new UiSelector().text(\"50\"))";

错误是:

An unknown server-side error occurred while processing the command. Original error: java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1 *:id/timePickerRecyclerMinutes^

我还尝试了 ID resourceIdMatches(\"timePickerRecyclerMinutes\")- 没有帮助。我知道有一些正则表达式错误,你能指出如何解决它吗?

当我使用完整 ID 和resourceId()时,它可以工作:

resourceId(\"com.dstarlab.icommunicator.internal:id/timePickerRecyclerMinutes\")

在此处输入图像描述

标签: javaandroidregexuiscrollviewappium

解决方案


你少了一个点。所以你必须改变

String query = "new UiScrollable(new UiSelector().resourceIdMatches(\"*:id/timePickerRecyclerMinutes\")).scrollIntoView(new UiSelector().text(\"50\"))";

String query = "new UiScrollable(new UiSelector().resourceIdMatches(\".*:id/timePickerRecyclerMinutes\")).scrollIntoView(new UiSelector().text(\"50\"))";

推荐阅读