【发布时间】:2017-06-02 13:49:48
【问题描述】:
我已经尝试单击数组列表的第一个项目几个小时,我已经阅读了很多关于 Stack Overflow 的问题、教程,并且我尝试以多种方式实现它们,但它不起作用。
clickView(getSearchActivity().hintListView);
onData(anything())
.onChildView(withId(R.id.hintLayout))
.atPosition(0)
.perform(click());
onData(allOf(is(instanceOf(String.class))))
.atPosition(0)
.perform(click());
onData(instanceOf(ArrayList.class))
.atPosition(0)
.perform(click());
onData(instanceOf(String.class))
.atPosition(0)
.perform(click());
onData(anything())
.inAdapterView(withId(R.id.hintLayout))
.atPosition(0)
.perform(click());
onData(anything())
.inAdapterView(allOf(withId(R.id.hintLayout), isCompletelyDisplayed()))
.atPosition(0).perform(click());
我必须单击 ListView 的第一项,即 ArrayList 这个 ListView 的 id 是 hintLayout。
有人知道是什么问题吗?它在哪里?
【问题讨论】:
-
你使用的是
ListView还是RecyclerView? -
我正在使用 ListView
-
当我不得不点击 Spinner 中的项目时,使用它就足够了:
onData(instanceOf(String.class)) .atPosition(1).perform(click());现在我遇到了很大的困难 -
我不清楚您要做什么。你写了 我必须点击 ListView 的第一项。这是否意味着您必须单击第一个元素 - 因为您使用
.atPosition(0).perform(click());对位置进行硬编码 -
我必须点击任何元素(无论是哪一个),但无法点击任何位置 - 这就是问题所在。
标签: java android unit-testing android-espresso