所以这是我的层次结构的分割:
RecyclerView --> LinearLayout --> RecyclerView --> FrameLayout -> FrameLayout
截图如下:
我希望能够验证显示文本的 FrameLayout
。这是我到目前为止所尝试的:
onView(withRecyclerView(R.id.container_list).atPositionOnView(0, R.id.row_content))
.check(matches(withRecyclerView(R.id.row_content).atPositionOnView(0, R.id.info_field)))
.check(matches(isDisplayed()));
但它会导致 AmbiguousViewMatcherException
。关于如何验证嵌套 View 的任何想法?应该提到我正在使用来自 here 的 ViewMatcher .谢谢。
最佳答案
我能够使用上面提供的解释@manidesto 进行一些细微的更改来验证它。
onView(allOf(isDescendantOfA(withRecyclerView(R.id.container_list).atPosition(0)),
isDescendantOfA(withRecyclerView(R.id.row_content).atPosition(0)),
withId(R.id.info_field)))
.check(matches(isDisplayed()));
主要的改进是我使用 allOf
匹配器来指定我试图验证的 View 的多个特征。
关于android - 用于嵌套 RecyclerView 的 Espresso 匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34138945/