У меня есть несколько кнопок в моем пользовательском интерфейсе, которые отображают только изображение, но не заголовок. Как я могу получить к ним доступ во время теста пользовательского интерфейса? window.buttons["delete"].click()
не находит кнопку из-за отсутствия заголовка. И я не могу установить заголовок, потому что изображение имеет некоторую прозрачность.
Тестирование пользовательского интерфейса с помощью Xcode: как найти кнопку без заголовка?
Ответы (2)
Вы должны установить accessibilityIdentifier
. Это свойство, не предназначенное для пользователя, которое было разработано, чтобы позволить вам идентифицировать элементы в ваших тестах пользовательского интерфейса. Он был введен, чтобы люди не злоупотребляли accessibilityLabel
, который люди раньше использовали для идентификации вещей в своих тестах, но который повлиял на опыт пользователей закадрового голоса, которые слышат содержимое accessibilityLabel
при выборе элемента.
// app code
let myButton: UIButton!
myButton.accessibilityIdentifier = "deleteButton"
// test code
let app = XCUIApplication()
let deleteButton = app.buttons["deleteButton"]
person
Oletha
schedule
05.06.2017
Вы можете найти кнопки через accessibilityLabel. Итак, сначала установите метку:
deleteButton.setAccessibilityLabel("delete")
И затем вы можете получить к нему доступ как обычно с помощью:
untitledWindow.buttons["delete"].click()
person
Wizard of Kneup
schedule
04.06.2017
Это действительно работает; однако имейте в виду, что метка доступности обращена к пользователю. Идентификатор доступности предпочтительнее, поскольку он не влияет на пользователя. Задайте идентификатор в коде, как показано в ответе @Oletha, или с помощью Interface Builder. Если кто-то действительно хочет (или нуждается) вместо этого по какой-то причине, убедитесь, что вы назвали его так, чтобы это было понятно человеку, использующему закадровый голос.
- person leanne; 29.07.2018