#swift #ui-automation #assert #ios-ui-automation
#swift #пользовательский интерфейс-автоматизация #утверждать #ios-ui-автоматизация
Вопрос:
Во время автоматизации изменения регистра сообщения электронной почты возникла проблема с утверждением элемента «текстовое поле выделено красным«. Не могли бы вы дать несколько советов по утверждению этого элемента?
Как мы пытались решить проблему:
- через функцию «waitForText»:
func waitForText(name: String) {
waitForElementToAppear(app.staticTexts[name])
}
Функция «waitForText» — это краткий пример реализации «waitForElementToAppear»:
func waitForElementToAppear(_ element: XCUIElement) -> Bool{
let predicate = NSPredicate(format: "exists == true")
let expectat = expectation(for: predicate, evaluatedWith: element, handler: nil)
let result = XCTWaiter().wait(for: [expectat], timeout: 20)
return result == .completed
}
- через функцию «waitForTextShort»:
func waitForTextShort(name: String) {
waitForElementToAppearShort(app.staticTexts[name])
}
Функция «waitForTextShort» — это краткий пример реализации «waitForElementToAppearShort»:
func waitForElementToAppearShort(_ element: XCUIElement) -> Bool{
let predicate = NSPredicate(format: "exists == true")
let expectat = expectation(for: predicate, evaluatedWith: element, handler: nil)
let result = XCTWaiter().wait(for: [expectat], timeout: 5)
return result == .completed
}
- через CTAssertTrue:
CTAssertTrue (app.staticTexts.element (match: .any, id: "Enter your email address"). exists)
Поиск элементов с помощью регистратора тестов пользовательского интерфейса отображает только поле ввода, но не обязательное поле.
Выгрузка элементов через po app.StaticTexts во время выполнения теста также не дает желаемых результатов:
StaticText, {{16.0, 130.0}, {288.0, 16.5}}, tag: "Enter your email address"
Используемые локаторы:
app.tables/*@START_MENU_TOKEN@*/.staticTexts["Enter your email address"]/*[[".cells.staticTexts["Enter your email address"]",".staticTexts["Enter your email address"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.tap()
Ответ №1:
Решаемая задача: просто попросите вашего разработчика добавить некоторый идентификатор к требуемому элементу — и легко подтвердите его 🙂