나는 받아 들인 대답보다 조금 더 깨끗한 방법을 발견했다고 생각합니다!
onData(equalTo("ITEM")).inRoot(RootMatchers.isPlatformPopup()).perform(click());
항복은 :
onData(x)
이 드롭 다운 x
일치하는 데이터 객체를 렌더링를 찾을 것이다. 데이터는 AutoCompleteTextView
에 제공된 Adaptor
에 의해 제공되므로 Adaptor
이 제공하는 모든 유형의 객체가 될 수 있습니다. 이는보기가 아닐 수도 있습니다. (withText
, withId
등 ...) 대신 표준 hamcrest 코어 매처를 사용하는 것이 좋습니다 (equalTo
, instanceOf
등 ...). 이 객체가 무엇이고 어떻게 일치하는지 알아 내려고 시도하는 것은 고통 스러울 지 모르겠지만 더 깔끔한 방법은 없습니다. 어댑터에 많은 항목이 있으면 뷰의 일부가 아직 계층 구조에 있지 않을 것입니다. 그래서 onView
가 작동하지 않습니다! onData
은 데이터와 일치하는보기를로드합니다. 체크 아웃 here (이 무엇 onData
반환) 및 here (이 일치하는 데이터를로드)
inRoot(RootMatchers.isPlatformPopup())
는 그래서 드롭 다운 메뉴 그래서 우리는 우리가 원하는 것을 지정해야합니다. 당신의 활동에서 실행되는 기본 창보다는 다른 창에 밝혀 그 창을 검색하십시오. 허용 된 대답은 기본 창이 아닌 모든 창과 일치하는 것으로 보이는 RootMatchers.withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))
을 사용합니다.
어쨌든 누군가 다른 사람에게.
나는 이것이 에스프레소와 어떻게 관련이 있는지 보지 못한다. – user3050720