2016-07-06 8 views
3

Wie überprüfe ich, ob ein Element in der UI-Hierarchie existiert? Ich möchte nicht, dass EarlGrey fehlschlägt, wenn ein Element nicht existiert, aber überprüfe ob es dort ist. Ich brauche das für UITableView, wo ich ständig nach oben blättern und nach unten scrollen muss, um ein Element zu suchen, aber das Element ist manchmal schon auf der aktuellen Ansicht .Wie überprüfe ich, ob ein Element in der UI-Hierarchie existiert?

Antwort

4

EarlGrey unterstützt Fehler-API: Wenn EarlGrey-APIs eine NSError-Referenz verwenden, werden die APIs nicht ausgelöst, wenn sie fehlschlagen, stattdessen füllen sie die Fehlerreferenz mit dem entsprechenden Fehler. Verwenden Sie diesen Code beispielsweise, um zu überprüfen, ob ein Element in der Ansichtshierarchie vorhanden ist (und nach diesen Informationen handelt):

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. 
}