浓咖啡无法区分相同的按钮

时间:2016-07-19 18:51:05

标签: java android android-espresso

我正在尝试使用浓缩咖啡进行测试。我被卡住了,因为浓咖啡无法区分屏幕上的两个按钮(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****

2 个答案:

答案 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