相关疑难解决方法(0)

使用Espresso单击RecyclerView项目内的视图

如何使用Espresso单击RecyclerView项目中的特定视图?我知道我可以点击位置0处的项目:

onView(withId(R.id.recyclerView)) .perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));

但是我需要点击该项目内的特定视图而不是项目本身.

提前致谢.

- 编辑 -

更确切地说:我有一个RecyclerView(R.id.recycler_view)项目是CardView(R.id.card_view).在每个CardView内部,我有四个按钮(除其他外),我想点击一个特定的按钮(R.id.bt_deliver).

我想使用Espresso 2.0的新功能,但我不确定是否可行.

如果不可能,我想使用这样的东西(使用托马斯凯勒代码):

onRecyclerItemView(R.id.card_view, ???, withId(R.id.bt_deliver)).perform(click());
Run Code Online (Sandbox Code Playgroud)

但我不知道该在问号上放些什么.

android android-espresso android-recyclerview

92
推荐指数
5
解决办法
4万
查看次数

Espresso:如何滚动到ScrollView的底部

如何在Espresso测试中向下滚动到ScrollView的底部?谢谢!

android android-espresso

16
推荐指数
3
解决办法
2万
查看次数

Espresso NestedScrollView

我试图在我的表单中测试NestedScrollView中的EditTexts.我正在运行以下代码:

onView(withId(R.id.register_scroll_view)).perform(scrollTo()).perform(click());
Run Code Online (Sandbox Code Playgroud)

其中register_scroll_view是我的NestedScrollView.但是,我得到一个例外:

android.support.test.espresso.PerformException:在视图'上执行'滚动到'时出错,ID为:com.eazyigz.myapp:id/register_scroll_view'.引起:java.lang.RuntimeException:不会执行Action,因为目标视图不匹配以下一个或多个约束:(视图具有有效可见性= VISIBLE并且是a的后代:(可从类中分配:class android .widget.ScrollView或可从类中分配:class android.widget.Horizo​​ntalScrollView))

如何正确设计此测试,以便我可以测试需要滚动到可见的EditTexts?

android android-testing android-espresso

10
推荐指数
2
解决办法
3695
查看次数

Espresso测试NestedScrollView - "错误执行'滚动到'视图'与id:"

我需要向下滚动浏览我的NestedScrollView以使用Espresso测试我的xml文件,但是我收到错误消息:"在视图上执行'滚动到'时出错",ID为:

其他几个帖子似乎也有类似的问题.

我遵循了以下说明:Android espresso NestedScrollView,如何滚动到底部

现在我得到前面提到的错误,并发现这篇文章:尝试滚动查看,但不显示视图

我的NestedScrollView中没有填充 - 我甚至尝试从XML中删除填充,用于测试目的,但它没有任何区别.

这是我的测试(到目前为止它不应该做任何事情,但向下滚动):

    @Test
    public void testScrollDownAbilityOfDetailsScrollView(){
        goToSpecificItemOnStream(streamItemWithOneImage);

        onView(withId(R.id.end_of_details))
                .perform(ScrollToAction.betterScrollTo());

    }
Run Code Online (Sandbox Code Playgroud)

它使用自定义的Scroll To Action类:

    public final class ScrollToAction implements ViewAction {

    private static final String TAG = ScrollToAction.class.getSimpleName();

    @SuppressWarnings("unchecked")
    @Override
    public Matcher<View> getConstraints() {
        return allOf(withEffectiveVisibility(Visibility.VISIBLE), isDescendantOfA(anyOf(
                isAssignableFrom(ScrollView.class),    isAssignableFrom(HorizontalScrollView.class), isAssignableFrom(NestedScrollView.class))));
    }

    @Override
    public void perform(UiController uiController, View view) {
        if (isDisplayingAtLeast(80).matches(view)) {
            Log.i(TAG, "View is already displayed. Returning.");
            return;
        }
        Rect rect = new Rect();
        view.getDrawingRect(rect);
        if (!view.requestRectangleOnScreen(rect, true /* immediate …
Run Code Online (Sandbox Code Playgroud)

java testing android android-espresso nestedscrollview

8
推荐指数
3
解决办法
4572
查看次数