3

在 EarlGrey 中,我如何访问正在与之交互的元素对象,例如,我想访问我刚刚点击的 UIButton。

4

1 回答 1

3

EarlGrey 不会返回(指向)元素,因为在交互完成后返回的视图/元素可能不存在,而且它可能导致难以检测到错误,因为持有对视图的强引用可以修改视图的生命周期。但是,您可以在使用 GREYActionBlock 进行交互时访问该元素。

- (void)testFoo {
  [[EarlGrey selectElementWithMatcher:grey_FooElementMatcher()]
      performAction:[GREYActionBlock actionWithName:@"bar"
       performBlock:^(id element, NSError *__strong *errorOrNil) {
           [element doWhatever];
           return YES; // Return YES for success, NO for failure.
       }
  ]];
}
于 2016-07-06T18:27:53.330 回答