如何在Espresso中打开单个子视图项的工具栏菜单(不是主要菜单)?

时间:2019-06-19 15:20:43

标签: android android-studio kotlin android-espresso

在Android Espresso中,我想打开单个项目的操作栏菜单,因此可以从recyclerview中删除该项目。我知道我可以使用方法“ openActionBarOverflowOrOptionsMenu”,但这只能标识活动的主工具栏。我的回收站视图中的每个项目都有一个工具栏元素,我找不到对特定项目执行打开菜单操作的方法。

recyclerview中的每个项目都像这样:

https://i.imgur.com/WuuuqWJ.png

我正在尝试使用Espresso中的方法或ViewActions打开工具栏元素的3点菜单。

我已经尝试过viewAction(#1)“ pressMenuKey()”,并且已经尝试过(#2)“ openActionBarOverflowOrOptionsMenu()”,但是(#1)仅标识并打开应用程序的主工具栏,而(# 2)具有多个工具栏匹配项,并引发此错误。 (#3)

  1. onView(withRecyclerView(R.id.recyclerviewExpenses).atPositionOnView(0,R.id.expense_name)).perform(pressMenuKey())
            onView(withId(R.id.delete_option_expense)).perform(click())
            onView(withId(R.id.expense_items)).check(matches(withText("0")))
    
  2. 2。
onView(withRecyclerView(R.id.recyclerviewExpenses).atPositionOnView(0,R.id.expense_name))
        openActionBarOverflowOrOptionsMenu(InstrumentationRegistry.getInstrumentation().targetContext)
        onView(withId(R.id.delete_option_expense)).perform(click())
        onView(withId(R.id.expense_items)).check(matches(withText("0")))
  1. androidx.test.espresso.AmbiguousViewMatcherException:'((在屏幕上向用户显示,内容描述文本为“ More options”)或(在屏幕上向用户显示,类名称为:以“ OverflowMenuButton”结尾的字符串))'匹配层次结构中的多个视图。问题视图下方带有“ **** MATCHES ****”标记。

帮助:(

0 个答案:

没有答案