点击回收站视图上的第一个匹配文本 Android espresso 测试

Tapping the first matching text on a recycler view Android espresso Testing

我正在尝试点击我的应用中匹配文本的第一个元素。 但是,目前我收到一条错误消息,告诉我由于我当前的代码行而存在多个匹配项。 onView(allOf(withId(R.id.offerSummaryLayout))).perform(RecyclerViewActions.actionOnItem(Matchers.allOf(hasDescendant(withText("Online sale"))), click()));

我怎样才能改变它,让它点击第一个匹配的元素?提前致谢

如果您有多个匹配项并且您只关心第一个匹配项,则可以创建一个自定义匹配器。 应该可以正常工作。

然后你可以做类似的事情(我稍微简化了你的代码 - 如果你只有一个条件,你不需要 Matchers.allOf):

onView(withId(R.id.offerSummaryLayout)).perform(RecyclerViewActions
        .actionOnItem(first(hasDescendant(withText("Online sale"))), click()));