Xcodes UI测试显示过期页面信息

时间:2016-08-26 10:37:02

标签: ios xcode automation xcode-ui-testing

目前有以下方法:

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()...以获取当前页面的更新视图?

任何人都知道任何聪明的方法吗?

1 个答案:

答案 0 :(得分:2)

使用expectationForPredicate可能更合适。

expectationForPredicate(NSPredicate(format: "exists == true"), evaluatedWithObject: XCUIApplication().staticTexts["Error message"], handler: nil)
waitForExpectationsWithTimeout(15.0, handler: nil)