android – ViewPager中的Espresso Recylerview匹配多个视图

前端之家收集整理的这篇文章主要介绍了android – ViewPager中的Espresso Recylerview匹配多个视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如何使用实现具有匹配多个视图的ID的RecylerView的片段来定位Viewpager?

我有一个MainActivity,它有一个Viewpager. Viewpager有5个标签.在这5个选项卡中,我使用RecylerViews在每个选项卡中加载图像.

RecylerView XML在不同的片段中重复使用,因此当使用Espresso访问它时,它会让抱怨ID与多个视图匹配.

我的RecylerView不加载任何文本,只加载图像,所以我甚至不能用withText(“文字在这里”).我也不能将onData()用于RecylerViews.

@RunWith(AndroidJUnit4.class)
@LargeTest
public class ExampleTest {

    @Rule
    public ActivityTestRule

所以它崩溃并指出错误

android.support.test.espresso.AmbiguousViewMatcherException: ‘with id: com.example.app:id/recycler_view’ matches multiple views in the hierarchy.
Problem views are marked with ‘****MATCHES****’ below.

//列出不同的层次结构

View Hierarchy:

View Hierarchy:
+>DecorView{id=-1,visibility=VISIBLE,width=720,height=1280,has-focus=false,has-focusable=true,has-window-focus=true,is-clickable=false,is-enabled=true,is-focused=false,is-focusable=false,is-layout-requested=false,is-selected=false,root-is-layout-requested=false,has-input-connection=false,x=0.0,y=0.0,child-count=1}

//...
最佳答案
我在使用ViewPager时遇到了同样的问题,并且将isDisplayed()子句添加到ViewMatcher中为我解决了这个问题(不过,与Espresso中的所有内容一样,它有时会出现片状)……

onView(allof(isDisplayed(),withId(R.id.recycler_view)))
    .perform(RecyclerViewActions.actionOnItemAtPosition(2,click()));

猜你在找的Android相关文章