如果recyclerView本身返回AmbiguousViewMatcherException,那么在Espresso中做什么?

问题是我有一个选项卡式的视图,每个页面包含相同的recyclerView与不同的数据属于该选项卡。 如果我没有描述得太好,它基本上与本教程中描述的相同: https : //github.com/codepath/android_guides/wiki/ViewPager-with-FragmentPagerAdapter

我正在使用Espresso创建仪器测试,当我尝试打电话时

onView(withId(R.id.recycler_view) 

与RecyclerViewAction一起使用,我返回了AmbiguousViewMatcher,告诉我在层次结构中有多个recyclerView。 我怎样才能指定一个特定的recyclerView? 我假设我需要某种“customRecyclerViewMatcher”

好! 所以首先我需要给每个视图一个标签(请参阅petey的答案: 如何在Android中使用Espresso抓取标签的视图? )

我发现onCreate并补充说:

 recyclerView.setTag(screenTab.getId()) 

这使我能够在我的测试类中设置这个(我正在使用Kotlin)

  private val tab1RecyclerView = onView( allOf( withId(R.id.recycler_view), withTagValue(`is`(Id.tab1)) ) ) 

所以我的测试开始是这样的:

 @Test fun tab1Test() { tab1RecyclerView.perform(RecyclerViewActions.actionOnItemAtPosition... etc }