У меня есть приложение, в котором создается группа UIViews, каждая из которых имеет метку, содержащую динамический StaticText.
Поскольку на этом экране может быть случайное количество этих статических текстов, я хочу, чтобы мой тест пользовательского интерфейса касался первой метки, которая соответствует определенным критериям строки.
Таким образом, идея, которую я разбрасываю, заключается в том, чтобы каким-то образом получить список всех ярлыков, а затем нажать на конкретный, который я хочу.
В настоящее время у меня определено несколько основных функций:
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
}
В настоящее время это возвращает ноль для specificOrder
, и я немного потерялся, где. Я говорю ему построить список всех tasks
в виде массива, верно?