XCUITest等待其中包含特定静态文本的单元格

时间:2019-06-28 09:56:26

标签: ios swift xcuitest

我有一些物品的收藏夹视图。在我的UI测试期间,我点击一个按钮,这将触发一个网络请求,完成该请求后,会将一个单元格插入索引为0的该集合视图中。尽管此网络请求来自本地服务器,但仍然需要一个一两秒就可以完成。

我要等待输入新的单元格,并检查它是否具有正确的值。这将通过视觉确认按钮背后的功能是否起作用。

我该怎么做?我不能使用application.collectionViews.cells.element(boundBy: 0),因为该位置已经有一个单元格,因此它将立即找到它,但是它的值将错误。

我基本上需要按子视图查询集合视图单元格。像这样:

let predicate = NSPredicate(format: "staticTexts['Title Label I'm after'].exists == 1")
application.collectionViews.cells.element(matching: predicate)

但这不起作用,实际上会崩溃,大概是因为staticTexts无法用于谓词解析器。

我在想的另一件事是,我构建自己的XCTestExpectation版本,该版本每秒运行一次,并运行一个处理程序,该处理程序将获取第一个单元格并检查其内容。

1 个答案:

答案 0 :(得分:2)

知道了,您必须使用containing而不是matching列表上的cells,如下所示:

let predicate = NSPredicate(format: "label == 'Title Label Value'")
let cell = application.collectionViews.cells.containing(predicate).firstMatch
wait(forElement: cell, timeout: timeout)