如何在 Espresso 中点击带有自动完成功能的 ImageView?

How click in a ImageView whit Autocomplete in Expresso?

我有一个自动完成框,带有服装 "CityAdapter",如何使用 expresso 测试访问 Button/ImageView?我通过 cityName 过滤服装适配器,所以我可以按名称找到城市。

 onView(withId(R.id.autoCompleteCities))
                .perform(typeText(""), closeSoftKeyboard());
         Activity mActivity=mActivityTestRule.getActivity();

onData(instanceOf(CityAdapter.class))
                    .inAdapterView(withId(R.id.autoCompleteCities))
                    .atPosition(0)
                    .onChildView(withId(R.id.tvFavourite))
                    .perform(click());

这里有一个例子:

您可以执行以下操作:

    onView(withId(R.id.autoCompleteCities))
            .perform(typeText("E"));

    onData(instanceOf(City.class))
            .inRoot(RootMatchers.isPlatformPopup())
            .atPosition(0)
            .onChildView(withId(R.id.tvFavourite))
            .perform(click());
  • onView(~).perform(~)是显示view-port中的auto complete listview
  • onData(instanceOf(City.class)) 这将找到对象与提到的 class(这里是 City.class)对象相同的视图。
  • inRoot(RootMatchers.isPlatformPopup()) 下拉菜单位于另一个 window 而不是默认 window 您的 activity 所在的位置。因此我们必须指定我们要搜索 window.
  • atPosition(0) 选择 array-listlist-view.
  • 中指定位置的项目
  • onChildView(withId(R.id.tvFavourite))选择指定ID的子视图(这里image-view)。

~参考