#ios #swift #xcode-ui-testing
#iOS #swift #xcode-ui-тестирование
Вопрос:
Иногда в UITests в Xcode компилятор пытается нажать на кнопку, прежде чем она будет загружена и представлена. Затем возникает такая проблема, как no matched found for...
.
Но простое решение для этого:
sleep(1) //wait 1 second and give `mybutton` time to load and be accessible for uitests
mybutton.tap()
Но это ужасно, поскольку я не могу указать его в 0.1
качестве параметра. И меня раздражает ждать 1 секунду перед множеством кнопок.
Есть ли способ подождать, пока оно не станет видимым для uitests?
Ответ №1:
Вы должны создать XCTestExpectation и дождаться его выполнения
expectationForPredicate(NSPredicate(format: "hittable == true"), evaluatedWithObject: mybutton, handler: nil)
waitForExpectationsWithTimeout(10.0, handler: nil)
mybutton.tap()
Комментарии:
1. Для Swift 3 вы можете оставить
handler
параметры.