我在PopupWindow内有一个ListView,我想单击列表中的第二项。我尝试了以下方法:

// Open the popupwindow
onView(withId(R.id.popupwindow_open)).perform(click());

现在出现了弹出窗口,我尝试了:
onData(anything()).inAdapterView(withContentDescription("delete")).atPosition(1).perform(
        click());

或这个:
onView(withContentDescription("delete"))).perform(click());

但我总是得到找不到该 View 的信息。如何在Espresso中做到这一点?

最佳答案

Android系统弹出窗口和警报显示在不同的窗口中。因此,您必须尝试在该特定窗口而不是主 Activity 窗口中找到 View 。

Espresso提供了一种方便的方法来查找弹出窗口的根 View 。尝试这个。

onView(ViewMatchers.withContentDescription("delete"))
         .inRoot(RootMatchers.isPlatformPopup())
         .perform(ViewActions.click());

10-04 14:32