1

我有一个在我的应用程序中选择特定提要的测试。它在 iPhone 6s 上运行良好,但在 iPhone 5s 上因找不到元素错误而失败。经过进一步调查,视图层次结构中似乎缺少提要。我想出了一个解决方法,例如:

if (running on iPhone 5s) {
  // Scroll down by 50 units.
  // Then locate the feed and check that it's visible.
  [[EarlGrey selectElementWithMatcher:grey_accessibilityID(@"feed10")] 
      assertWithMatcher:grey_sufficientlyVisible()];
}

虽然这看起来不错,但我想知道如果在屏幕上找不到元素,是否有更好的方法来有条件地滚动。

4

1 回答 1

1

EarlGrey提供usingSearchAction:onElementWithMatcher:api 来查找需要滚动到的元素才能找到它们。由于您使用grey_sufficientlyVisible()的是 ,因此需要该元素在屏幕上可见assertWithMatcher才能通过检查。从他们的常见问题解答中,您可以将断言更改为以下内容:

if (running on iPhone 5s) {
  [[EarlGrey selectElementWithMatcher:matcher]
                  usingSearchAction:grey_scrollInDirection(kGREYDirectionDown, 50)
               onElementWithMatcher:grey_accessibilityID(@"feed10")
                  assertWithMatcher:grey_sufficientlyVisible()];
}

仅供参考 - 您使用kGREYDirectionDown它是因为它表示视口变化的方向,而不是滚动滑动的方向。

于 2016-07-18T08:54:36.043 回答