ios - Appium NSPredicate 从子查询中选择单个项目

标签 ios appium nspredicate

在 Appium 中使用 NSPredicates 的第一天。

问题来了。

我在 View 中有 3 个 XCUIElementTypeTextField 元素。

我可以像这样使用 Xpath 来选择

"(//XCUIElementTypeTextField)[1]"

然后是 2 和 3。但是 Xpath 很慢,当我需要更复杂的解决方案时,我现在正在使用 NsPredicates。虽然我知道我可以通过其他策略进行搜索,但 NSPredicate 是否支持像上面的 xpath 这样的选择器? 我可以这样做吗:

"SUBQUERY(*, $el, $el.type == 'XCUIElementTypeTextField')[0]"

然而这并没有返回结果:

"type =='XCUIElementTypeTextField'"

会。

最佳答案

NSPredicate 基本上是定义逻辑条件的方式,Xpath 是一种用于搜索 XML 的语言。

我很确定您已经检查过,但也许其他人可以更多地了解如何使用 NSPredicate 检查 official source

更重要的是检查什么适用于 Appium:XCUIModeTest.java 中列出的基于 NSPredicate 的定位器 find_by_ios_predicate_tests.py

作为您的案例的解决方法,您可以使用谓词获取元素列表,稍后对其进行迭代以通过索引获取所需的元素。

关于ios - Appium NSPredicate 从子查询中选择单个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47548835/

相关文章:

iphone - 如何用单指旋转和调整 ImageView 的大小

ios - UICollectionView 位置和分段控制编程错误

ios - 等待并发线程事件的正确方法

python - 通过 ios_ui 查找元素不起作用

appium - 如何使用 Android 驱动程序从上到下滚动

cocoa - 如何创建过滤主 TableView 的 iTunes 风格源列表?

带有谓词的 ios 核心数据错误

ios - 在 UIView 生命周期中知道 View 何时被销毁

ios - 如何在 iOS7 中搜索 NSString 句子中用逗号分隔的特定单词?