目前有以下方法:
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()...
来获取当前页面的更新视图一样?有人知道有什么聪明的办法吗?
最佳答案
使用expectationForPredicate可能更合适。
expectationForPredicate(NSPredicate(format: "exists == true"), evaluatedWithObject: XCUIApplication().staticTexts["Error message"], handler: nil)
waitForExpectationsWithTimeout(15.0, handler: nil)
关于ios - Xcode UI测试显示过期的页面信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39164276/