在EarlGrey中,我如何访问我正在与之交互的元素对象?

时间:2016-07-06 18:20:51

标签: earlgrey

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

1 个答案:

答案 0 :(得分: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.
       }
  ]];
}