目前有以下方法:

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/

10-13 03:57