使用浓缩咖啡滚动到回收站视图中的屏幕外项目

时间:2016-11-14 11:45:29

标签: android android-espresso

我正在使用Espresso和其他人创建的应用程序进行一些UI测试,但我遇到了一些困难。

我需要点击回收站视图中的按钮。这个按钮在屏幕外。这是布局文件:

<android.support.design.widget.AppBarLayout
    android:id="@+id/activity_asset_profile_appbar_layout"
    android:layout_width="match_parent"
    android:layout_height="256dp"
    android:fitsSystemWindows="true"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:titleEnabled="true">

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center_horizontal"
            android:orientation="vertical"
            app:layout_scrollFlags="scroll|enterAlways"
            android:fitsSystemWindows="true"
            app:layout_collapseParallaxMultiplier="0.3">

            <RelativeLayout
                android:id="@+id/activity_asset_profile_content_rl"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="@dimen/small_vertical_margin"
                android:layout_marginLeft="@dimen/asset_profile_section_title_vertical_margin"
                android:layout_marginRight="@dimen/small_horizontal_margin">

                <TextView
                    android:id="@+id/layout_asset_profile_header_name_text_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_above="@+id/layout_asset_profile_header_serial_number_text_view"
                    android:layout_alignParentLeft="true"
                    app:layout_behavior="@string/appbar_scrolling_view_behavior"
                    android:textColor="@android:color/white"
                    android:textSize="22sp" />

                <TextView
                    android:id="@+id/layout_asset_profile_header_serial_number_text_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_above="@+id/layout_asset_profile_header_description_text_view"
                    android:layout_marginTop="3dp"
                    android:textColor="@android:color/white"
                    android:textSize="@dimen/big_text_size" />

                <TextView
                    android:id="@+id/layout_asset_profile_header_description_text_view"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_above="@+id/item_list_asset_profile_header_photo_image_button"
                    android:layout_marginTop="5dp"
                    android:textColor="@android:color/white"
                    android:textSize="@dimen/medium_text_size" />

                <ImageButton
                    android:id="@+id/item_list_asset_profile_header_photo_image_button"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentRight="true"
                    android:layout_marginLeft="@dimen/small_horizontal_margin"
                    android:background="@color/colorPrimary"
                    android:src="@drawable/ic_camera" />

            </RelativeLayout>

        </FrameLayout>

        <ImageView
            android:id="@+id/backdrop"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            android:scaleType="centerCrop"
            android:src="@drawable/photo"
            android:visibility="gone"
            app:layout_collapseMode="parallax" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/activity_asset_profile_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.CollapsingToolbarLayout>


</android.support.design.widget.AppBarLayout>

<android.support.v7.widget.RecyclerView
    android:id="@+id/activity_asset_profile_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ProgressBar
        android:id="@+id/activity_asset_profile_progress_bar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

</RelativeLayout>

还有另一个文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/item_list_asset_profile_section_title_top_divider_ll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <View
            android:layout_width="match_parent"
            android:layout_height="@dimen/asset_profile_content_vertical_margin" />

        <View
            android:layout_width="match_parent"
            android:layout_height="@dimen/asset_profile_divider_height"
            android:background="@color/divider_background" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginTop="@dimen/asset_profile_section_title_vertical_margin"
        android:layout_marginLeft="@dimen/activity_horizontal_margin"
        android:layout_marginRight="@dimen/activity_horizontal_margin">

        <RelativeLayout
            android:id="@+id/item_list_asset_profile_section_title_main_rl"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="@dimen/asset_profile_section_title_vertical_margin">

            <TextView
                android:id="@+id/layout_profile_section_header_text_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_centerInParent="true"
                android:text="@string/comment_section_header"
                android:textColor="@color/base_text"
                android:textSize="@dimen/big_text_size"
                android:textStyle="bold" />

            <ImageButton
                android:id="@+id/item_list_asset_profile_section_title_expand_image_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="@dimen/small_horizontal_margin"
                android:layout_toRightOf="@+id/layout_profile_section_header_text_view"
                android:background="@drawable/selector_white_background"
                android:src="@drawable/ic_disclosure_indicator" />

            <ImageButton
                android:id="@+id/item_list_asset_profile_section_title_add_image_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:background="@drawable/selector_white_background"
                android:src="@drawable/ic_asset_profile_add" />

        </RelativeLayout>

        <LinearLayout
            android:id="@+id/item_list_asset_profile_section_title_no_items_ll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:visibility="visible">

            <TextView
                android:id="@+id/item_list_asset_profile_section_title_no_items_text_view"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:includeFontPadding="false"
                android:text="No labels"
                android:textColor="@color/secondary_text"
                android:textSize="@dimen/big_text_size" />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

由于这不是我的代码,我不知道为什么需要这两个文件,所以如果有人确切知道为什么......我很想知道。

以下是不起作用的代码部分:

    onView(allOf(withId(R.id.item_list_asset_profile_section_title_add_image_button),hasSibling(withText("Tags"))))
        .perform(NestedScrollViewScrollToAction.scrollTo(),click());

我正在使用NestedScrollViewScrollViewActions,如下所示:https://gist.github.com/miszmaniac/12f720b7e898ece55d2464fe645e1f36

我尝试了其他主题中发现的多个内容,但没有一个能解决我的问题。

我是新手,所以请善待并告诉我在我的要求中我可以改进什么。 谢谢。

0 个答案:

没有答案