我正试图在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()
有效)。
我做错了什么?
答案 0 :(得分:0)
你需要让运行循环运行,尝试睡觉:
RunLoop.current.run(until:Date(timeIntervalSinceNow:0.001))