Подтвердить что ты не робот

Найти родителя или родного брата с помощью тестирования интерфейса Xcode

Я работаю с UITableViews, и мне бы хотелось найти ячейку, которая соответствует элементу управления или статическому тексту внутри ячейки.

В более общем плане, хороший способ найти любого родителя или родного брата данного элемента был бы замечательным.

Сейчас я просто перебираю ячейки, пока не найду правильный, чего я бы хотел избежать. Я пробовал использовать app.tables.cells.containingPredicate, но не повезло.

let pred = NSPredicate { (element, bindings: [String : AnyObject]?) -> Bool in
      return element.staticTexts["My Text"].exists
}
let cells = app.tables.cells.containingPredicate(pred)

Элемент, переданный блоку предикатов, представляет собой XCElementSnapshot, который не имеет статическихTexts.

ИЗМЕНИТЬ

Джеймс прав, метод containsType: identifier: отлично работает.

В быстром режиме это выглядит как

let cell = app.tables.cells.containingType(.StaticText, identifier: "My Text")

Если идентификатор в сигнатуре метода НЕ соответствует свойству идентификатора элемента, скорее это просто обычный способ доступа к элементу по тексту в скобках.

app.cells.staticTexts["My Text"] 
4b9b3361

Ответ 1

Пробовали ли вы использовать containingType вместо containingPredicate? Кажется, это дает вам именно то, что вы ищете. Я не слишком знаком с Swift, но в Objective C он будет выглядеть так:

    [app.cells containingType:XCUIElementTypeStaticText identifier:@"My Text"];