В XCUITest элементы UI ищут через иерархию доступности, которая доступна через экземпляр XCUIApplication. Ты можешь запрашивать элементы по их типу и метке доступности:
app.buttons["Submit"]app.textFields["Email"]app.staticTexts["Welcome"]Для более надёжного поиска присвой идентификаторы доступности в коде приложения, используя .accessibilityIdentifier("submitButton"), а затем ссылайся на них в тестах как app.buttons["submitButton"].
Как только элемент найден, с ним можно взаимодействовать через встроенные методы:
.tap() — имитирует нажатие.typeText("hello@example.com") — вводит текст в поле.swipeUp() / .swipeDown() — прокручивает представлениеAssertions используются для проверки того, что элементы существуют или находятся в ожидаемом состоянии:
XCTAssertTrue(app.buttons["Submit"].exists)
XCTAssertTrue(app.buttons["Submit"].isEnabled)
Для элементов, которые появляются асинхронно, используй waitForExistence(timeout:), чтобы избежать нестабильных тестов:
let button = app.buttons["Submit"]
XCTAssertTrue(button.waitForExistence(timeout: 5))
waitForExistence вместо того, чтобы рассчитывать на мгновенную доступность элементаAccessibility identifiers не зависят от языка и надёжнее для поиска элементов UI, чем accessibility labels, поэтому они считаются предпочтительным способом для queries элементов в XCUITest.
Новый — ещё не проверен сообществом
Вы