Выбор элемента из выпадающего списка в эспрессо - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь написать тест для эспрессо, который будет выполнять поиск, введите 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}"

Любые предложения, это сводит меня с ума ... Спасибо :))

1 Ответ

0 голосов
/ 27 мая 2019

Мне нужно увидеть представление, чтобы убедиться, но% 99 процентов вам не нужно использовать onData, и вы можете просто обойтись с onView (withText (containsString (yourSearchFilter))). Execute (click ()).

Существует также, вероятно, withSubstring (текст), который соответствует withText (содержитString (текст))

...