android – Espresso如何点击listview第一个项目中的ImageView?
作者:互联网
我有listview的自定义布局,我想点击列表视图项中的imageview,列表视图中第一项的溢出图标.
我想点击ID为“rcOverflow”的最后一张imageview
我的布局,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:paddingBottom="10dp"
android:paddingTop="5dp">
<ImageView
android:id="@+id/rcCircle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignWithParentIfMissing="true"
android:layout_alignParentTop="true" />
<TextView
android:id="@+id/rcTime"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="right"
android:maxLines="1"
android:textColor="#ffffff"
android:textSize="13sp" />
<RelativeLayout
android:id="@+id/rsBubble"
android:layout_width="280dp"
android:layout_height="wrap_content"
android:layout_alignWithParentIfMissing="true"
android:layout_below="@id/recordsMonthHeader"
android:paddingBottom="16dp"
android:paddingTop="16dp">
<ImageView
android:id="@+id/rcImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:layout_alignParentTop="true"
android:visibility="gone"
android:layout_marginLeft="3dp"
android:layout_marginRight="4dp"/>
<TextView
android:id="@+id/rcFilename"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:textColor="#000000"
android:maxLines="2"
android:ellipsize="end"
android:textSize="15sp" />
<TextView
android:id="@+id/rcDuration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/recordsFilename"
android:layout_marginLeft="10dp"
android:layout_marginTop="2dp"
android:textColor="#a09f9f" />
<ImageView
android:id="@+id/records_location_image"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_alignBottom="@id/recordsDuration"
android:layout_marginBottom="4dp" />
<TextView
android:id="@+id/rcLocation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/recordsDuration"
android:layout_marginBottom="1dp"
android:layout_marginLeft="3dp"
android:layout_marginTop="2dp"
android:ellipsize="end"
android:lines="1"
android:textColor="#a09f9f"
android:textSize="12sp"
android:visibility="gone" />
<TextView
android:id="@+id/rcTag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/recordsDuration"
android:layout_marginLeft="10dp"
android:layout_marginTop="3dp"
android:textColor="#a09f9f"
android:textSize="12sp"
android:visibility="gone" />
<ImageView
android:id="@+id/rcOverflow"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_below="@+id/recordsImage"
android:layout_alignParentRight="true"
android:layout_alignWithParentIfMissing="true"
android:background="?android:attr/selectableItemBackground"
android:src="@drawable/overflow" />
</RelativeLayout>
我尝试了什么
onData(anything()).inAdapterView(withId(getId("recorderlistpage_listView")))
.perform(click());
要么
onData(anything()).atPosition(0).inAdapterView(withId(getId("rcOverflow")))
.perform(click());
两个都不工作
解决方法:
我不是太自信但是这个怎么样?
onData(anything())
.inAdapterView(withId(R.id. recorderlistpage_listView))
.atPosition(0)
.onChildView(withId(R.id.rcOverflow))
.perform(click());
标签:android,junit4,android-testing,android-espresso,ui-testing 来源: https://codeday.me/bug/20190528/1170680.html