我希望测试暂停并等待元素出现在屏幕上然后再继续.
我没有看到为此创建期望并等待使用的好方法
public func waitForExpectationsWithTimeout(timeout: NSTimeInterval, handler: XCWaitCompletionHandler?)
创造我一直在使用的期望的方法一直是
public func expectationForPredicate(predicate: NSPredicate, evaluatedWithObject object: AnyObject, handler: XCPredicateExpectationHandler?) -> XCTestExpectation
但这需要一个已经存在的元素,而我想让测试等待一个尚不存在的元素.
有谁知道最好的方法吗?
在expectationForPredicate(predicate: evaluatedWithObject: handler:)
您不提供实际对象,而是提供查询以在视图层次结构中查找它.因此,例如,这是一个有效的测试:
let predicate = NSPredicate(format: "exists == 1") let query = XCUIApplication().buttons["Button"] expectationForPredicate(predicate, evaluatedWithObject: query, handler: nil) waitForExpectationsWithTimeout(3, handler: nil)
查看UI测试备忘单和从标题生成的文档(目前没有官方文档),全部由Joe Masilotti完成.