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

elp*_*cko 3 android listview ui-testing android-viewpager android-espresso

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

我已经尝试让它像这样工作:

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

但正如我从这里了解到的:使用 Espresso 测试 ViewPager。如何对项目的按钮执行操作?您不能将 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());则永远不会单击第一项。

还有另一种方法可以单击列表的第一项吗?

jep*_*bio 6

尝试这个:

onData(anything())
    .inAdapterView(allOf(withId(R.id.myListView), isCompletelyDisplayed()))
    .atPosition(0).perform(click());
Run Code Online (Sandbox Code Playgroud)

由于您有一个 AmbiguousViewMatcherException,如果我没有错,这可能与屏幕上显示的“myListView”匹配。