У меня есть приложение, в котором создается группа UIViews, каждая из которых имеет метку, содержащую динамический c StaticText.
Поскольку этот экран может иметь случайное количество этих состояний c текстов, я хочу, чтобы мой тест пользовательского интерфейса касался первой метки, которая соответствует заданным c строковым критериям.
Таким образом, идея, которую я бросаю, будет каким-то образом получить список всех меток, а затем нажать на указанный c тот, который я хочу.
В настоящее время у меня определено несколько базовых c функций:
let specificOrder = getTaskByIdx(1)
if specificOrder?.waitForExistence(timeout: defaultTimeout) == false {
app.swipeUp()
}
XCTAssertTrue(specificOrder?.waitForExistence(timeout: defaultTimeout) ?? false, "Could not find order.")
specificOrder?.tap()
specificOrder?.tap()
}
func getTaskByIdx(_ idx: Int) -> XCUIElement? {
let tasks = getTasks()
return getElementByIdx(tasks, idx: idx)
}
fileprivate func getTasks() -> [XCUIElement] {
return app.collectionViews.children(matching: .cell).allElementsBoundByIndex
}
Это в настоящее время возвращает nil для specificOrder
, и я вроде не понимает, где. Я говорю ему создать список всех tasks
в виде массива, верно?