通常,如果我们想使用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())