2016-12-12 4 views
0

Я пытаюсь проверить в UITests Xcode существование кнопки, которая присутствует в моем режиме входа в систему.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 не работает, он всегда возвращает ложь.

Пробовал разные значения msToWait и sleep(1) вместо usleep(), тот же результат.

И, конечно, кнопка существует (app.buttons["Sign in with email"].tap()).

Что я делаю неправильно?

ответ

0

Вы должны позволить запустить цикл выполнения, попробуйте спать с:

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

 Смежные вопросы

  • Нет связанных вопросов^_^