使用 Espresso 单击 ListView 中的特定复选框
Click on a specific checkbox in a ListView using Espresso
我有一个 ListView
,其中每一行都有一个复选框:
现在我想点击第 4 行的复选框。我有每一行的数据模型,所以我可以轻松地使用 onData()
到 select 给定数据的行。但是如何单击该行中的复选框?
经过一番研究,我发现了DataInteraction.atPosition()
and DataInteraction.onChildView()
。比如我可以做
onData(instanceOf(BaseballCard.class))
.atPosition(4)
.onChildView(withId(R.id.checkmark))
.perform(click());
如果您的行布局允许点击行来设置复选框,您可以使用它来点击 ListView 行:
onData(anything()).atPosition(4).perform(click());
否则您可以在不知道其 ID 的情况下直接单击 CheckBox:
onData(anything())
.atPosition(4)
.onChildView(withClassName(Matchers.containsString("CheckBox")))
.perform(click());
然后您可以断言 CheckBox 已被选中:
onData(anything())
.atPosition(4)
.onChildView(withClassName(Matchers.containsString("CheckBox")))
.check(matches(isChecked()));
更多信息:https://github.com/shohrabuddin/Espresso
注意:要快速添加这些方法的导入,请将闪烁的光标放在未解析的方法上,然后执行 Android Studio ➔ 帮助 ➔ Find Action ➔ 搜索 "show context action"
或 "show intention action"
➔ 点击结果选项 ➔ 弹出 window 会出现 ➔ 点击 "Import static method ..."
.您还可以为 "Show Context Actions" 分配键盘快捷键。 More info here。另一种方法是在设置中启用"Add unambiguous imports on the fly"
。
我有一个 ListView
,其中每一行都有一个复选框:
现在我想点击第 4 行的复选框。我有每一行的数据模型,所以我可以轻松地使用 onData()
到 select 给定数据的行。但是如何单击该行中的复选框?
经过一番研究,我发现了DataInteraction.atPosition()
and DataInteraction.onChildView()
。比如我可以做
onData(instanceOf(BaseballCard.class))
.atPosition(4)
.onChildView(withId(R.id.checkmark))
.perform(click());
如果您的行布局允许点击行来设置复选框,您可以使用它来点击 ListView 行:
onData(anything()).atPosition(4).perform(click());
否则您可以在不知道其 ID 的情况下直接单击 CheckBox:
onData(anything())
.atPosition(4)
.onChildView(withClassName(Matchers.containsString("CheckBox")))
.perform(click());
然后您可以断言 CheckBox 已被选中:
onData(anything())
.atPosition(4)
.onChildView(withClassName(Matchers.containsString("CheckBox")))
.check(matches(isChecked()));
更多信息:https://github.com/shohrabuddin/Espresso
注意:要快速添加这些方法的导入,请将闪烁的光标放在未解析的方法上,然后执行 Android Studio ➔ 帮助 ➔ Find Action ➔ 搜索 "show context action"
或 "show intention action"
➔ 点击结果选项 ➔ 弹出 window 会出现 ➔ 点击 "Import static method ..."
.您还可以为 "Show Context Actions" 分配键盘快捷键。 More info here。另一种方法是在设置中启用"Add unambiguous imports on the fly"
。