5
我正在寫一個測試,我需要等待一個特定的視圖出現在我的UI中,使用EarlGrey
UI測試框架。因此,我查看了文檔here,並試圖使用GREYCondition
來實現此目的。但似乎GREYCondition
需要使用特定的條件檢查。任何人都可以告訴我這種情況的格式是什麼?在我看來,有什麼辦法可以讓它等待呢?如何配置我的EarlGrey測試以等待視圖或事件?
我正在寫一個測試,我需要等待一個特定的視圖出現在我的UI中,使用EarlGrey
UI測試框架。因此,我查看了文檔here,並試圖使用GREYCondition
來實現此目的。但似乎GREYCondition
需要使用特定的條件檢查。任何人都可以告訴我這種情況的格式是什麼?在我看來,有什麼辦法可以讓它等待呢?如何配置我的EarlGrey測試以等待視圖或事件?
通常,您不應該等待特定的視圖,因爲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.
}
非常感謝! –