Я пытаюсь написать тест для эспрессо, который будет выполнять поиск, введите 2 буквы, чтобы получить пошаговый поиск, и нажмите на 2-й элемент в списке.
Результаты отображаются в адаптере.
Конечно, я хорошо справляюсь с первой частью, но когда мне нужно нажать на элемент в списке, возникает проблема.
Я уже пробовал что-то вроде
onData(anything()).inAdapterView(withId(R.id.searchContainer)).atPosition(1).perform(click())
и
onData(withChild(withText("Some Search"))).atPosition(1).perform(click())
(где Some Search - полный текст результата)
и
onData(withId(android.R.id.text1)).atPosition(1).perform(click())
(где text1 - идентификатор поля результата)
@Test
fun searchForSandwich() {
onView(withId(R.id.textSearch)).perform(typeText("ha"))
onData(withChild(withText("Ham Sandwich"))).atPosition(1).perform(click())
Он должен щелкнуть по результату и открыть новый экран / действие, и я сделаю там свое утверждение.
В настоящее время я получаю эту ошибку:
Caused by: java.lang.RuntimeException: Action will not be performed because the target view does not match one or more of the following constraints:
(is assignable from class: class android.widget.AdapterView and is displayed on the screen to the user)
Target view: "ce{id=-1, visibility=GONE, width=0, height=0, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=true, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=true, is-selected=false, layout-params=android.widget.RelativeLayout$LayoutParams@4d102dd, tag=null, root-is-layout-requested=false, has-input-connection=false, x=0.0, y=0.0, child-count=0}"
Любые предложения, это сводит меня с ума ... Спасибо :))