使用Xcode UI测试查找父母或兄弟姐妹

Ale*_*lex 12 ios swift swift2 xcode-ui-testing

我正在使用UITableViews,我想找到与单元格内的控件或静态文本对应的单元格.

更一般地说,找到给定元素的任何父级或兄弟的好方法将是很好的知道.

现在我只是循环遍历细胞,直到找到正确的细胞,我想避免.我尝试过使用app.tables.cells.containingPredicate,但没有运气.

let pred = NSPredicate { (element, bindings: [String : AnyObject]?) -> Bool in
      return element.staticTexts["My Text"].exists
}
let cells = app.tables.cells.containingPredicate(pred)
Run Code Online (Sandbox Code Playgroud)

传递给谓词块的元素是XCElementSnapshot,它没有staticTexts.

编辑

James是正确的,containsType:identifier:方法效果很好.

在快速,它看起来像这样

let cell = app.tables.cells.containingType(.StaticText, identifier: "My Text")
Run Code Online (Sandbox Code Playgroud)

如果方法签名中的标识符与元素的标识符属性不对应,那么它只是通过括号中的文本访问元素的常规方式.

app.cells.staticTexts["My Text"] 
Run Code Online (Sandbox Code Playgroud)

Jam*_*Goe 13

你尝试过用containingType而不是containingPredicate吗?它似乎正好能满足您的需求.我对Swift不太熟悉,但在Objective C中,它看起来像这样:

    [app.cells containingType:XCUIElementTypeStaticText identifier:@"My Text"];
Run Code Online (Sandbox Code Playgroud)

  • @Alex `staticTexts["X"]` 中的 X 可用于根据相关元素匹配可访问性标签、可访问性标识符、标题、名称和/或值。我还没有找到一个明确的答案,哪个用于哪个。 (2认同)