2016-02-17 11 views
5

我正在寫一個測試,我需要等待一個特定的視圖出現在我的UI中,使用EarlGrey UI測試框架。因此,我查看了文檔here,並試圖使用GREYCondition來實現此目的。但似乎GREYCondition需要使用特定的條件檢查。任何人都可以告訴我這種情況的格式是什麼?在我看來,有什麼辦法可以讓它等待呢?如何配置我的EarlGrey測試以等待視圖或事件?

回答

6

通常,您不應該等待特定的視圖,因爲EarlGrey的內置同步應該自動爲您執行此操作。 GREYConfiguration中有各種設置可以調整以增加(或減少)EarlGrey同步的程度。如果這些設置都不起作用,則可以使用您創建的GREYCondition之類的內容添加顯式同步,並使用頂級EarlGrey API來確定是否存在視圖。

GREYCondition *waitForFoo = [[GREYCondition conditionWithName:@"wait for Foo" block:^BOOL{ 
    NSError *error; 
    // Checking if a view with accessibility ID "Foo" exists: 
    [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@」Foo」)] 
     assertWithMatcher:grey_notNil() error:&error]; 
    return error == nil; 
}]; 

// Wait until 5 seconds for the view. 
BOOL fooExists = [waitForFoo waitWithTimeout:5]; 
if (fooExists) { 
    // Interact with Foo. 
} 
+0

非常感謝! –