我在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());