Appium NSPredicate从SUBQUERY中选择单个项目

时间:2017-11-29 09:06:25

标签: ios appium nspredicate

第一天使用NSPredicates和Appium。

这是问题所在。

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

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

  

“(// XCUIElementTypeTextField)[1]”

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

  

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

然而,这不会返回结果:

  

“type =='XCUIElementTypeTextField'”

确实

1 个答案:

答案 0 :(得分:1)

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

我很确定你已经检查过,但也许其他人可以通过NSPredicate检查official source

了解你可以做些什么

更重要的是检查 XCUIModeTest.java {中列出的适用于Appium 基于NSPredicate的定位器的内容{3}}

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