Я обнаружил, что этот код работает.Мы запускаем цикл в течение времени ожидания, ожидая 1 секунду между итерациями.На каждом шаге мы проверяем, существуют ли все элементы, возвращаем true, если они есть, продолжаем в противном случае.
func waitForExistenceOfAll(elements: [XCUIElement], for timeout: TimeInterval) -> Bool {
guard elements.count > 0 else {
return true
}
let startTime = NSDate.timeIntervalSinceReferenceDate
while (NSDate.timeIntervalSinceReferenceDate - startTime <= timeout) {
var allExist = true
for element in elements {
if !element.exists {
allExist = false
break
}
}
if allExist {
return true
}
sleep(1)
}
return false
}