我正在使用浓缩咖啡测试应用。这个应用程序有2个ListViews,espresso onData 函数找到两个ListView但它们有不同的ID。
代码:
onData(withId(R.id.order_jijia_listview)).perform(ViewActions.click());
结果:
ListView{id=2131493579, res-name=order_jijia_listview, visibility=VISIBLE, width=768,
height=659, has-focus=false, has-focusable=true, has-window-focus=true,
is-clickable=true, is-enabled=true, is-focused=false, is-focusable=true,
is-layout-requested=false, is-selected=false, root-is-layout-requested=false,
has-input-connection=false, x=0.0, y=345.0, child-count=7} ****MATCHES****
ListView{id=2131493586, res-name=order_jijia_pop_listview, visibility=VISIBLE, width=0,
height=0, has-focus=false, has-focusable=false, has-window-focus=true,
is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false,
is-layout-requested=true, is-selected=false, root-is-layout-requested=false,
has-input-connection=false, x=0.0, y=0.0, child-count=0}
答案 0 :(得分:0)
第二个ListView未标记为****MATCHES****
,因此问题不存在。
您应该仅将onData
用于ListView元素,而不是ListView
本身。
要查找ListView,您需要使用onView
:
onView(withId(R.id.order_jijia_listview)).perform(ViewActions.click());
你想要达到什么目的?点击列表元素?
因此,您需要将onData
与复杂匹配器一起使用:
onData(allOf(is(instanceOf(String.class)), is("Americano"))).perform(click());
您可以在official espresso tutorial中详细了解onData
和onView
。