Xcode UITest,检查是否存在超时

时间:2016-12-12 12:19:19

标签: ios xcode xcode-ui-testing

我正试图在Xcode的UITests中检查登录视图中是否存在按钮。

我尝试(并在代码的其他部分使用)expectationForPredicate方法和waitForExpectationsWithTimeout方法,但是当按钮不可见时,它将无法通过测试。

所以我的尝试是:

func isLoggedIn(timeout: UInt32 = 10) -> Bool{
    let app = XCUIApplication()
    let msToWait : UInt32 = 100

    for _ in 1 ... (timeout * 1000 / msToWait) {
        if(app.buttons["Sign in with email"].exists){
            return false;
        }
        usleep(msToWait * 1000)
    }
    return true;
}

app.buttons["Sign in with email"].exists不起作用,它总是返回false。

尝试了msToWait和sleep(1)的不同值,而不是usleep(),结果相同。

当然,按钮存在(app.buttons["Sign in with email"].tap()有效)。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

你需要让运行循环运行,尝试睡觉:

RunLoop.current.run(until:Date(timeIntervalSinceNow:0.001))