Appium NSPredicate Select 来自子查询的单个项目

Appium NSPredicate Select A Single Item From a SUBQUERY

在 Appium 中使用 NSPredicates 的第一天。

这是问题所在。

我在视图中有 3 个 XCUIElementTypeTextField 元素。

我可以像这样使用 Xpath select

"(//XCUIElementTypeTextField)[1]"

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

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

这不是 return 结果:

"type =='XCUIElementTypeTextField'"

会。

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

我很确定你已经检查过了,但也许其他人想要了解更多关于你可以用 NSPredicate 做什么的知识检查 official source

更重要的是检查 Appium 的作用:基于 NSPredicate 的定位器 列于 XCUIModeTest.java and find_by_ios_predicate_tests.py

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