通常,如果我们想使用espresso按下按钮,则需要等待ID为ID的视图被加载。然后执行单击。材质设计芯片使您可以定义关闭图标,并将侦听器放置在关闭图标上。但是,这意味着closeIcon没有直接引用的ID,在布局检查器中显示为Chip的一部分。

onView(withId(R.id.chip)).perform(click())


您将如何使用espresso查找关闭图标?

最佳答案

用浓缩咖啡表达式执行此操作并非易事,但在摆弄它之后,似乎Material Chip公开了performCloseIconClick()函数,最终我将其插入到Custom View Action中。希望这对您有所帮助。

 class ClickCloseIconAction : ViewAction {

    override fun getConstraints(): Matcher<View> {
        return ViewMatchers.isAssignableFrom(Chip::class.java)
    }

    override fun getDescription(): String {
        return "click drawable "
    }

    override fun perform(uiController: UiController, view: View) {
        val chip = view as Chip//we matched
        chip.performCloseIconClick()
    }
}


这意味着您可以这样称呼它

onView(withId(R.id.chip)).perform(ClickCloseIconAction())

10-07 13:41