目前有以下方法:
func waitForOptionalElement(explicitElement: XCUIElement, timeout: Int) {
var waitedDuration = 0
while waitedDuration < timeout {
if explicitElement.exists {
break
}
waitedDuration++
sleep(1)
}
}
此方法旨在等待屏幕上出现对象。我遇到的问题是,如果在调用方法时屏幕上不存在explicityElement
,则explicitElement.exists
始终返回false
(即使对象出现时)。就像explicitElement
在页面更改时不会刷新,但会继续检查原始视图而不是任何更新的视图。
如果我完全致电explicitElement
,例如
XCUIApplication().staticTexts["Error message"].exists
然后会回来true
。好像您需要致电XCUIApplication()...
以获取当前页面的更新视图?
任何人都知道任何聪明的方法吗?
答案 0 :(得分:2)
使用expectationForPredicate可能更合适。
expectationForPredicate(NSPredicate(format: "exists == true"), evaluatedWithObject: XCUIApplication().staticTexts["Error message"], handler: nil)
waitForExpectationsWithTimeout(15.0, handler: nil)