Как проверить, существует ли элемент в иерархии пользовательского интерфейса? Я не хочу, чтобы EarlGrey потерпел неудачу, если элемент не существует, но просто проверьте, существует ли он там, мне нужно это для UITableView, где я должен постоянно прокручивать вверх и прокручивать вниз по элементу, но элемент иногда уже находится в текущем представлении, чтобы начать с ,Как проверить, существует ли элемент в иерархии пользовательского интерфейса?
3
A
ответ
4
EarlGrey поддерживает 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.
}