XCUIElementQuery.matching(идентификатор:) не работает для UIImageView

Я пытаюсь реализовать очень простой тест, но застрял с XCUIElementQuery .matching(идентификатор:) метод. Я думаю, что запрос UIImageViews не работает должным образом, но не уверен, почему.

У меня есть эти два параметра для просмотра:

  1. Метка: Ярлык со специальными возможностями с идентификатором: 'label'
  2. UIImageView:UIImageView со специальными возможностями, включенными с идентификатором: 'accept'

И у меня есть этот тест:

func testRecording() {
    XCTAssertEqual(app.staticTexts.matching(identifier: "label").count, 2)
    XCTAssertEqual(app.images.matching(identifier: "accept").count, 1)
}

где я запрашиваю эти два представления (метка с идентификатором label и UIImageView с идентификатором accept). Отсюда: app просто определяется как свойство класса, например: let app = XCUIApplication().

Итак, вот как выглядит экран: Таблица с 2 элементами

Это означает, что этот тест должен пройти, так как на экране есть два staticText с идентификатором label и один image с идентификатором accept. staticText успешно запрашиваются, но когда matching(identifier:) пытается запросить image с идентификатором accept, происходит сбой: Сбой теста на изображении с идентификатором

Я пытался запросить многие вещи, например:

  • app.images.
  • app.tables.
  • app.tables.images.
  • app.tables.cells.images.
  • app.buttons. (также помечен как Button в разделе «Черты» настроек специальных возможностей)
  • app.staticTexts. (также помечен как Static Text в разделе «Черты» настроек специальных возможностей)

но не повезло... Есть ли что-то, что я здесь делаю неправильно или что-то упускаю?


person lagoman    schedule 26.10.2017    source источник


Ответы (1)


Хорошо, так как я работаю в команде QA, я не особо смотрел код разработки. Но когда я это сделал, я нашел ответ.

UIImageView, который используется для отображения галочки, никогда не используется из файла .xib, а вместо этого всегда выделяется новый экземпляр, подобный этому:

indicatorView = UIImageView(image: #imageLiteral(resourceName: "arrow_marked_ok_small"))

это означает, что новые параметры доступности устанавливаются с вызовом инициализатора, поэтому старый экземпляр UIImageView, который имеет параметры доступа из файла .xib, который я разместил в первых двух изображениях, переопределяется.

person lagoman    schedule 27.10.2017