滑动直到Android Espresso中的元素可见

时间:2017-11-17 12:59:13

标签: android testing android-testing android-espresso

我有一个带数据输入表格的长垂直屏幕。我需要swipeUp(向下滚动)此屏幕,直到屏幕上显示一个表单字段。 我尝试在屏幕上方较高的元素上使用 swipeUp() scrollTo() ViewActions,但它没有帮助我,这些元素隐藏在屏幕上擦了之后。

2 个答案:

答案 0 :(得分:2)

当今的惯用方法是使用RepeatActionUntilViewState。例如,以下内容将在ID为largeElementId的元素上向上滑动10次,直到用户看到带有文本“目标文本”的视图为止

onView(withId(R.id.largeElementId)).perform(repeatedlyUntil(swipeUp(), 
        hasDescendant(withText("Target text")), 
        10));

答案 1 :(得分:0)

它应该是这样的:

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

    try {
        uiElementToSearch.check(matches(isCompletelyDisplayed()));
        found = true;
    } catch (Exception e) {
        // The search continues
    }
    i++;
}

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