Espresso Nested Recycler Views UI 测试

Posted

技术标签:

【中文标题】Espresso Nested Recycler Views UI 测试【英文标题】:Espresso Nested Recycler Views UI testing 【发布时间】:2017-03-29 08:55:57 【问题描述】:

我在垂直RecyclerView 中有一个水平RecyclerView。我正在使用我在其他问题上找到的这段代码:

onView(allOf(isDescendantOfA(withRecyclerView(R.id.parentVerticalRecyclerView).atPosition(parentPosition)),
             isDescendantOfA(withRecyclerView(R.id.childHorizontalRecyclerView).atPosition(childPosition)),
                (withText("USA"))))
                .perform(click());

// It is not working for parentPosition > 0

但这仅适用于父级RecyclerView 的第一行。

如何点击父RecyclerView第二行子RecyclerView上的元素?

【问题讨论】:

【参考方案1】:

我终于找到了解决办法:

onView(allOf(
         withId(R.id.childHorizontalRecyclerView),
         withParent(
           withRecyclerView(R.id.parentVerticalRecyclerView).atPosition(2)
         )
       )
).perform(RecyclerViewActions.actionOnItemAtPosition(3, scrollTo()))
.check(matches(hasDescendant(withText("USA")))); 

【讨论】:

初始匹配器有什么问题? 我认为问题在于我使用的是 isDescendantOfA。 Espresso 无法找到视图。

以上是关于Espresso Nested Recycler Views UI 测试的主要内容,如果未能解决你的问题,请参考以下文章

recycler

如何使 Recycler View 表现得像 PlayStore Recycler Views

Espresso Test 2: Espresso_simple

Espresso Test 2: Espresso_simple

Recycler View 不显示数据

Recycler 视图中的自动平滑滚动