在回收站视图上点击第一个匹配的文本 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)[重复]

在视图“匹配第 0 个视图”上执行“单击”时出错。

在 recyclerview 适配器类中显示自定义弹出窗口 - Android Java

如何从电子邮件意图中的回收站视图中获取两个文本视图?

如何为我在回收站视图中的卡片视图中的每个项目创建一个点击监听器