我想为我的Android应用创建Espresso测试。我有一个StaggeredGridView
(StaggeredGridView Github ),其中包含许多由自定义模型(Recipe.class
)组成的网格项(~1000)
<com.etsy.android.grid.StaggeredGridView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/mainPageGridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="main_grid"
android:descendantFocusability="blocksDescendants"
app:column_count="2"
app:item_margin="8dp">
</com.etsy.android.grid.StaggeredGridView>
网格项是一个简单的LinearLayout
Image
和TextView
。
问题是,当我想点击屏幕上看不到的元素时,Espresso会卡住而不会滚动到它以执行操作。
我尝试了以下内容(如果我将位置更改为1,那么它可以正常工作):
onData(anything()).inAdapterView(withId(R.id.mainPageGridView))
.atPosition(5)
.perform(click());
尝试了这个:
onData(anything()).inAdapterView(withId(R.id.mainPageGridView))
.atPosition(5)
.perform(scrollTo(), click());
这是一个错误,还是我错过了一些参数?
答案 0 :(得分:0)
它对我有用:
onData(anything()).inAdapterView(withId(R.id.main_drawerGridView)).atPosition(0).perform(click());