一般的に、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.
}
ありがとうございました! –