gpt4 book ai didi

android - 使用 Espresso 验证弹出菜单中的项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:04:42 24 4
gpt4 key购买 nike

我有一个弹出菜单。下面提供了用户界面屏幕截图。我想通过单击菜单中的某些项目来验证它们并验证发生了什么。

无论我做什么,我都无法在弹出菜单中选择项目。菜单没有 ID,我认为不可能设置菜单的 ID。

我尝试过不同的方法,例如:

onView(nthChildOf(anyOf(withId(android.R.id.title)), 1)).perform(click());

onView(withText("5 sekunder")).perform(click());

但没有任何效果。如何单击弹出菜单中的项目?

编辑

更清楚:当我单击操作栏右侧的点以展开子菜单时,会发生这种情况。在我的案例中,子菜单总是包含三个项目。我最接近的解决方案是:

onData(anything()).atPosition(2).perform(click());

但大多数情况下它会打开第一个项目而不是位置第二的项目。这导致:

No activities in stage RESUMED. Did you forget to launch the activity. (test.getActivity() or similar)?

Screenshot

最佳答案

Espresso 提供 RootMatchers对于这种情况。它对我很有效:

onView(withText("Text")).inRoot(isPopupWindow()).perform(click());

public static Matcher<Root> isPopupWindow() {
return isPlatformPopup();
}

isPlatformPopup()RootMatchers 中的一个方法类(class)。您可以在 Android 开发人员文档中阅读更多针对非默认窗口的信息 here .

或者试试这个:

onView(withText("Text"))
.inRoot(withDecorView(not(is(getActivity().getWindow().getDecorView()))))
.perform(click());

关于android - 使用 Espresso 验证弹出菜单中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35013172/

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