gpt4 book ai didi

android - Espresso - 使用应用程序单击菜单项 :showAsAction ="ifRoom"

转载 作者:行者123 更新时间:2023-12-05 00:14:19 24 4
gpt4 key购买 nike

我想使用 Espresso 单击以下菜单项:

<item
android:id="@+id/action_save"
android:icon="@drawable/vector_image_save"
android:orderInCategory="4"
android:title="@string/menu_action_save"
app:showAsAction="ifRoom"/>

由于 ifRoom,在某些设备中,菜单在操作栏中显示为图标,而在较小的设备中,它显示在“更多选项”下。

我可以使用以下代码点击操作栏中的“保存”图标:onView(withId(R.id.action_save)).perform(click());

如果它出现在“更多选项”下,我可以使用下面的代码点击保存:openActionBarOverflowOrOptionsMenu(InstrumentationRegistry.getTargetContext());
onView(withText(R.string.menu_action_save)).perform(click());

我想要一种适用于两种情况的单一测试方法。

最佳答案

    try {
onView(withId(R.id.action_save)).perform(click());
} catch (NoMatchingViewException e) {
openActionBarOverflowOrOptionsMenu(InstrumentationRegistry.getTargetContext());
onView(withText(R.string.menu_action_save)).perform(click());
}

您将首先检查菜单是否显示为图标。如果是这样,请单击它。如果没有,请打开“更多选项”菜单,然后从弹出窗口中选择“保存”菜单。

注意:我知道我们不应该在测试方法中使用条件,但我真的找不到任何其他解决方案。如果你们中的任何人确实找到了更好的解决方案,请在此处发布。

关于android - Espresso - 使用应用程序单击菜单项 :showAsAction ="ifRoom",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43833929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com