在回收站视图上点击第一个匹配的文本 Android espresso 测试
Posted
技术标签:
【中文标题】在回收站视图上点击第一个匹配的文本 Android espresso 测试【英文标题】:Tapping the first matching text on a recycler view Android espresso Testing 【发布时间】:2017-03-22 16:39:24 【问题描述】:我正在尝试在我的应用中点击匹配文本的第一个元素。
但是,目前我收到一条错误消息,告诉我由于我当前的代码行存在多个匹配项。
onView(allOf(withId(R.id.offerSummaryLayout))).perform(RecyclerViewActions.actionOnItem(Matchers.allOf(hasDescendant(withText("Online sale"))), click()));
我怎样才能改变它,让它点击第一个匹配的元素?提前致谢
【问题讨论】:
【参考方案1】:如果您有多个匹配项并且只关心第一个匹配项,则可以创建自定义匹配器。 This one here 应该可以正常工作。
然后你可以做这样的事情(我稍微简化了你的代码 - 如果你只有一个条件,你不需要Matchers.allOf
):
onView(withId(R.id.offerSummaryLayout)).perform(RecyclerViewActions
.actionOnItem(first(hasDescendant(withText("Online sale"))), click()));
【讨论】:
谢谢!但是,这仍然给我AmbiguousViewMatcherException: 'with id: uk.co.vouchercodes.android.beta:id/offerSummaryLayout' matches multiple views in the hierarchy. Problem views are marked with '****MATCHES****' below.
的相同错误
@Billy Boyo 是 offerSummaryLayout
RecyclerView
的 id?
@BartekLipinski 是的,第一个 id 是 recyclerView id,对我有用!以上是关于在回收站视图上点击第一个匹配的文本 Android espresso 测试的主要内容,如果未能解决你的问题,请参考以下文章
将图像从 imageview 上传到 Firebase Android
如何将点击监听器添加到我的回收器视图(Android kotlin)[重复]