如何配置我的 EarlGrey 测试以等待视图或事件?
How can I configure my EarlGrey test to wait for a view or an event?
我正在编写一个测试,我需要使用 EarlGrey
UI 测试框架等待特定视图出现在我的 UI 中。因此,我查看了文档 here 并尝试使用 GREYCondition
来实现这一点。但似乎 GREYCondition
需要使用特定的条件检查。谁能告诉我条件的格式是什么?有什么方法可以将我的观点传递给条件使其等待吗?
通常您不必等待特定的视图,因为 EarlGrey 的内置同步会自动为您完成。 GREYConfiguration 中有各种设置可以调整以增加(或减少)EarlGrey 同步的程度。如果这些设置中的 none 有效,您可以添加与您创建的 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.
}
我正在编写一个测试,我需要使用 EarlGrey
UI 测试框架等待特定视图出现在我的 UI 中。因此,我查看了文档 here 并尝试使用 GREYCondition
来实现这一点。但似乎 GREYCondition
需要使用特定的条件检查。谁能告诉我条件的格式是什么?有什么方法可以将我的观点传递给条件使其等待吗?
通常您不必等待特定的视图,因为 EarlGrey 的内置同步会自动为您完成。 GREYConfiguration 中有各种设置可以调整以增加(或减少)EarlGrey 同步的程度。如果这些设置中的 none 有效,您可以添加与您创建的 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.
}