Espresso,滚动到动态加载ListView的底部

时间:2015-08-19 12:09:06

标签: android android-espresso

在一个测试用例中正常向下滚动我可以使用这种代码的和平:

 onView( withId( R.id.button)).perform( scrollTo(), click());

然而,在这个测试中,我想向下滚动Listview,其中childelements动态加载(我不知道有多少),当视图向下滚动时。有没有像在Robotium中那样滚动到浓咖啡底部的东西?

我的工作:

int [] childCount =  getListElements();
    for(int i = 0;i<childCount[0];i++) {
        onData(anything()).inAdapterView(withId(R.id.ScheduleOrderListViewListView)).atPosition(i).perform(click());
        childCount =  getListElements();
    }

public int[] getListElements(){
    final int[] counts = new int[1];
    onView(withId(R.id.ScheduleOrderListViewListView)).check(matches(new TypeSafeMatcher<View>() {
        @Override
        public boolean matchesSafely(View view) {
            ListView listView = (ListView) view;

            counts[0] = listView.getCount();

            return true;
        }

        @Override
        public void describeTo(Description description) {

        }
    }));
    return counts;

1 个答案:

答案 0 :(得分:0)

您应该使用onData()与ListView元素进行交互。如果要滚动到底部,只需滚动到最后一项。例如:

onData(instanceOf(ListData.class))
        .atPosition(INITIAL_LIST_SIZE - 1)
        .perform(scrollTo());