Как проверить, существует ли элемент в иерархии пользовательского интерфейса?

Как проверить, существует ли элемент в иерархии пользовательского интерфейса? Я не хочу, чтобы EarlGrey терпел неудачу, если элемент не существует, но просто проверьте, есть ли он там, мне это нужно для UITableView, где я должен постоянно прокручивать вверх и прокручивать вниз в поисках элемента, но элемент иногда уже находится в текущем представлении для начала .


person jdis    schedule 06.07.2016    source источник


Ответы (1)


EarlGrey поддерживает Error API: когда API-интерфейсы EarlGrey принимают ссылку NSError, API-интерфейсы не будут выбрасывать в случае сбоя, вместо этого они заполняют ссылку на ошибку соответствующей ошибкой. Например, используйте этот код, чтобы проверить, существует ли элемент в иерархии представлений (и действовать в соответствии с этой информацией):

NSError *error;
[[EarlGrey selectElementWithMatcher:grey_fooElementMatcher()]
    assertWithMatcher:grey_notNil() error:&error];

if (error && [error.domain isEqual:kGREYInteractionErrorDomain] &&
    error.code == kGREYInteractionElementNotFoundErrorCode) {
  // Element doesn’t exist.
} else if (!error) {
  // Element exists.
}
person Gautam    schedule 06.07.2016