0

这是我的代码-> https://github.com/patchthecode/XCTestBug

这是我的看法->

在此处输入图像描述

我正在尝试捕捉灰色视图。它包含一个标签Ll和按钮11

此代码捕获视图

let p1 = NSPredicate(format: "label LIKE[c] %@","L1")
let views = app.otherElements.containing(p1)

此代码还正确捕获视图

let p2 = NSPredicate(format: "label LIKE[c] %@","11")
let views = app.otherElements.containing(p2)

但是此代码无法捕获任何内容

let p1 = NSPredicate(format: "label LIKE[c] %@","L1")
let p2 = NSPredicate(format: "label LIKE[c] %@","11")

let comp = NSCompoundPredicate(andPredicateWithSubpredicates: [p1, p2])
let views = app.otherElements.containing(comp)

我究竟做错了什么?

4

1 回答 1

0

即使comp谓词有效,它也不会捕获灰色视图。它将捕获包含“L1”和“11”元素的所有元素。在您的情况下,它捕获 2 个元素:ViewController的视图和灰色视图(因为两者都包含“L1”和“11”。所以这不是捕获灰色视图的正确方法。

捕获灰色视图最简单的部分是为其添加可访问性标识符(并为此启用可访问性UIView)。然后您可以使用以下命令轻松查询灰色框:

let grayBox = app.otherElements.matching(identifier: "grayBox").element(boundBy: 0)

您的NSCompoundPredicate解决方案不起作用,因为查询正在查找包含一个带有文本“L1”“11”的标签的元素。而且因为 UILabel 只能有一个文本,所以这总是失败。

于 2017-10-13T13:08:44.780 回答