我正在尝试使用浓缩咖啡进行测试。我被卡住了,因为浓咖啡无法区分屏幕上的两个按钮(admin_server_trash),因为它们看起来是相同的。在实际的代码库中,按钮的行为基于它们左侧的内容。我如何在Espresso中实现这一点?
显示的错误如下,导致错误的行也在下面。
android.support.test.espresso.AmbiguousViewMatcherException: 'with id: com.revelwood.quantum:id/admin_server_trash' matches multiple views in the hierarchy.
@Test
public void TestManageServerAddGood()
{
...
onView(withId(R.id.admin_server_trash)).perform(click());
}
此外,这里有2个错误按钮。它们似乎是相同的,所以我无法弄清楚如何使用浓缩咖啡来区分它们。
+---------->AppCompatImageButton{id=2131624221, res-name=admin_server_trash, desc=image, visibility=VISIBLE, width=63, height=63, 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=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=933.0, y=33.0} ****MATCHES****
+---------->AppCompatImageButton{id=2131624221, res-name=admin_server_trash, desc=image, visibility=VISIBLE, width=63, height=63, 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=false, is-selected=false, root-is-layout-requested=false, has-input-connection=false, x=933.0, y=33.0} ****MATCHES****
答案 0 :(得分:1)
我明白了!这简直太简单了。您还可以使用Espresso附带的hasSibling匹配器来确定它与之匹配的内容。
onView(allOf(is((withId(R.id.admin_server_trash))), hasSibling(withText(nickname))))
.perform(click());
答案 1 :(得分:0)
在实际的代码库中,按钮的行为基于什么 他们离开了。我如何在Espresso中实现这一点?
尝试isLeftOf匹配器。
好的备忘单,概述了所有(?)可用的Espresso matchers。 https://google.github.io/android-testing-support-library/assets/espresso-cheat-sheet-2.1.0.png