【发布时间】:2017-08-28 06:58:49
【问题描述】:
一个屏幕上有多个水平的Recyclerview。我想在第一个水平Recyclerview 的第一项上执行浓缩咖啡点击事件。请让我知道我们如何实现它。
onView(withId(R.id.craousal_recyclerview))
.perform(RecyclerViewActions.actionOnItemAtPosition(1, new ClickOnImageView()));
public class ClickOnImageView implements ViewAction {
ViewAction click = click();
@Override
public Matcher<View> getConstraints() {
return click.getConstraints();
}
@Override
public String getDescription() {
return " click on custom image view";
}
@Override
public void perform(UiController uiController, View view) {
click.perform(uiController, view.findViewById(R.id.craousal_imageview));
}
它给了我以下例外:
android.support.test.espresso.AmbiguousViewMatcherException
【问题讨论】:
-
你能发布你的布局文件吗?可能有一种方法可以在您的应用程序中执行此操作,而无需借助 RecyclerViewAction 使用更具体的视图匹配器来创建自定义 ViewAction。 actionOnHolderItem()
-
@jdonmoyer 我在我的代码中在运行时创建布局。通过我得到了解决方案,我提到了答案。但现在面临另一个问题,即我的
RecyclerView适配器大小变为零,因此我无法单击列表的第一项。但在屏幕上我可以看到我的RecyclerView中的数据。有什么意见吗?
标签: android android-espresso android-junit androidjunitrunner