java - 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\")
解决方案
你少了一个点。所以你必须改变
从
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\"))";
推荐阅读
- c++ - 当我的类具有显式析构函数时,为什么 Valgrind 会给出不同数量的泄漏?
- react-native - redux 中的 action、reducer 和 store 有什么区别?
- android - 错误:包 R 不存在。我必须添加软件包吗?
- angularjs - 为什么有 ng-init 时 ng-model 会设置输入的值?
- java - 分块字段的默认值 - (setChunked)
- vb.net - 如何导入要在 VB.NET WebBrowser 中显示的 HTML 文件
- node.js - Express - POST 请求待处理
- ruby-on-rails - 如何在 Rails 上证明一个简单的控制器方法?
- css - 在 Bootstrap 中设计具有不同行的 2 列
- laravel - 没有选择类别不显示子类别