5

EarlGrey我正在编写一个测试,我需要使用UI 测试框架等待特定视图显示在我的 UI 中。因此,我查看了此处的文档并尝试使用GREYCondition. 但似乎GREYCondition需要使用特定的条件检查。谁能告诉我条件的格式是什么?有什么方法可以在我的视图中传递给条件以使其等待它?

4

1 回答 1

8

通常,您不必等待特定视图,因为 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.
}
于 2016-02-17T03:24:48.187 回答