Android Espresso单击ListView内的按钮

时间:2019-07-08 00:50:04

标签: java android android-espresso

我正在尝试使用Espresso进行测试,以单击Listview特定元素内的按钮。

ListView中的每个元素都有一个按钮(R.id.my_button),我想单击第一个元素的按钮。

我尝试过:         onData(anything())。                 atPosition(0)。                 inAdapterView(                         所有的(                                 withId(R.id.my_button)                         )                 )。                 perform(click());

实际结果: androidx.test.espresso.AmbiguousViewMatcherException:'(具有id:com.test.test:id / my_button)'匹配层次结构中的多个视图。

2 个答案:

答案 0 :(得分:0)

如果要进入AdapterView,这将允许您单击listview内的元素

onData(anything()).inAdapterView(withId(R.id.list1)).atPosition(0).perform(click());

答案 1 :(得分:0)

这可能会有所帮助, 进入listView->第一个元素->第一个元素的子元素(在您的情况下为按钮)

onData(anything()).inAdapterView(withId(R.id.list)).atPosition(0).onChildView(withId(R.id.my_button)).check(matches(isDisplayed())).perform(click());