2016-07-07 14 views
1

Ich habe einen Test, der einen bestimmten Feed in meiner App auswählt. Es funktioniert gut auf iPhone 6s, aber scheitert auf iPhone 5s mit Element nicht gefunden Fehler. Bei weiteren Untersuchungen scheint es, als ob der Feed in der View-Hierarchie fehlt. Ich kam mit einer Vermeidung des Problems auf, die wie etwas ist:Test läuft gut auf iPhone 6s Plus aber schlägt auf iPhone 5s fehl

if (running on iPhone 5s) { 
    // Scroll down by 50 units. 
    // Then locate the feed and check that it's visible. 
    [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"feed10")] 
     assertWithMatcher:grey_sufficientlyVisible()]; 
} 

Obwohl diese feine scheint, Ich mag gerne wissen, ob es eine bessere Art und Weise bedingt zu bewegen, wenn das Element nicht auf dem Bildschirm zu finden ist.

Antwort

1

EarlGrey bietet die usingSearchAction:onElementWithMatcher: API, um Elemente zu finden, die gescrollt werden müssen, um sie zu finden. Da Sie grey_sufficientlyVisible() verwenden, ist es erforderlich, dass das Element auf dem Bildschirm sichtbar ist, damit die assertWithMatcher Prüfung bestanden wird. Aus ihrer FAQ, können Sie Ihre Behauptung ändern, die folgenden sein:

if (running on iPhone 5s) { 
    [[EarlGrey selectElementWithMatcher:matcher] 
        usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 50) 
       onElementWithMatcher:grey_accessibilityID(@"feed10") 
        assertWithMatcher:grey_sufficientlyVisible()]; 
} 

FYI - Sie kGREYDirectionDown verwenden, da sie die Richtung der Änderung des Ansichtsfensters und nicht die Richtung der für die Scroll getan Swipe bezeichnet.

Verwandte Themen