2016-12-12 53 views
0

我試圖檢查,在Xcode的UITests中,存在於我的登錄視圖中的按鈕的存在。Xcode UITest,檢查存在與超時

我試着(並在代碼的其他部分使用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

你需要讓運行循環運行,嘗試用睡覺:

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