Espresso:在ViewPager中单击ListView中的第一项

时间:2016-08-18 14:40:30

标签: android listview android-viewpager android-espresso ui-testing

是否可以在ViewPager中单击ListView的第一项?

我已经尝试过这样的工作:

onData(anything()).inAdapterView(withId(R.id.myListView)).atPosition(0).perform(click());

但据我所知:Testing ViewPager with Espresso. How perfom action to a button of an Item?你不能将onData用于ViewPager。 另外,如果我运行测试,我会得到多个匹配的AmbiguousViewMatcherException。

android.support.test.espresso.AmbiguousViewMatcherException: 'with id: my.awesome.app:id/myListView' matches multiple views in the hierarchy. Problem views are marked with '****MATCHES****' below.

如果我像这样onView(allOf(withId(R.id.myListView),isDisplayed())).perform(click());运行测试,则永远不会点击第一项。

有没有其他方法可以点击列表的第一项?

1 个答案:

答案 0 :(得分:3)

试试这个:

onData(anything())
    .inAdapterView(allOf(withId(R.id.myListView), isCompletelyDisplayed()))
    .atPosition(0).perform(click());

当你有一个AmbiguousViewMatcherException时,如果我没有错,这可能与屏幕上显示的“myListView”相匹配。