如何在浓缩咖啡中进行滑动操作?

时间:2017-10-17 22:20:40

标签: android android-espresso

Espresso有滑动操作,我想知道是否可以向左或向右滑动,直到屏幕上显示文字为止。我的意思是如果我有一个包含很多标签的Tab布局,我想执行滑动操作,直到看到具有特定文本的标签

2 个答案:

答案 0 :(得分:1)

这可以在一个循环中进行滑动,然后检查此元素在try / catch块中是否可见,直到到达页面视图的末尾或找到该项目。

如果到达了网页浏览的结尾并且未找到该项,那么您可以执行类似 Assert.fail("未找到该元素。");

试试这段代码:

boolean found = false;
int i = 0;
while (!found && i < NUM_PAGES) {
    onView(withId(R.id.viewPager)).perform(swipeLeft());
    SystemClock.sleep(500);

    try {
        if (checkElementVisible()) {
            found = true;
        }
    } catch (Exception e) {
        // The search continues
    }
    i++;
}

if (!found) {
    Assert.fail("The element has not been found.");
}

答案 1 :(得分:0)

您可以滑动一次并验证是否显示了textView。如果没有,请再次滑动。

或者您可以使用一种方法来验证textview ...并且如果抛出“NoMatchingViewException”,则会滑动。

像这样的东西(没有测试代码):

    public static boolean swipeUntilExists(int resourceId) {
    final ViewInteraction uiElement = onView(withId(resourceId));
    boolean isVisible = false;
    while (!isVisible) {
        try {

            // do swipe here

            uiElement.check(matches(isDisplayed()));
            isVisible = true;
        } catch (NoMatchingViewException e) {
            // do nothing here
        }
    }
    return isVisible;
}