如何在浓缩咖啡的某个项目位置找到孩子以进行回收

时间:2017-09-14 11:55:46

标签: android android-espresso android-espresso-recorder

我一直在查看浓缩咖啡样品,但他们只提供使用以下方法在某个位置执行点击的直接方法

{{1}}

在大多数情况下,我们需要在某个位置点击多个子项目之一。像TextView,ImageView和Checkbox一样。

如果我的Recyclerview有50个项目,我没有看到任何简单的方法到达25号的Checkbox。除了定义我自己的ViewAction实现之外,任何人都可以有任何简单的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以像这样创建自己的withIndex匹配器:

public static Matcher<View> withIndex(final Matcher<View> matcher, final int index) {
    return new TypeSafeMatcher<View>() {
        int currentIndex = 0;

        @Override
        public void describeTo(Description description) {
            description.appendText("with index: ");
            description.appendValue(index);
            matcher.describeTo(description);
        }

        @Override
        public boolean matchesSafely(View view) {
            return matcher.matches(view) && currentIndex++ == index;
        }
    };
}

使用示例

int indexToSelect = 4;
onView(allOf(withIndex(withId(R.id.textViewToSelect), indexToSelect), isDescendantOfA(withId(R.id.customRecyclerView)))).perform(click());