resourceIdMatches() 在 Appium UiSelector 中不起作用

resourceIdMatches() doesn't work in Appium UiSelector

我正在为 Android 使用 appium。

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

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

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\")

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

来自

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\"))";