Intereting Posts
Изображение смены контактов Android Как программно настроить z порядок просмотров Потоковая передача RTSP с видео в формате HTML5 приводит к ошибке с ошибкой сервера (100,0) на Android ActionbarSherlock открыть подменю в меню устройства при нажатии клавиши в android Размер файла PdfDocument для Android Android StringBuilder vs String Concatenation Как узнать размер внутренней памяти в Android? Показывать только дату и время в Android Как сделать запрос POST с помощью модификации 2? Можно ли отделить потоки пользовательского интерфейса WebView и HTTP? Является ли ArrayAdapter потоком безопасным в android? Если нет, что я могу сделать, чтобы сделать его потокобезопасным? Как увеличить выбранную высоту вкладки в виджетах вкладки? Несоответствие ETA на Google Картах Почему функция setVisibility не работает после просмотра анимированного представления? Папка SRC в Eclipse пуста (класс MainActivity не создан) после создания нового проекта Android с использованием Eclipse

Android uiautomator, чтобы щелкнуть ListView

У меня есть приложение для Android, которое использует uiautomator для выбора параметров в списке. ListView выглядит следующим образом:

Введите описание изображения здесь

Я пытаюсь щелкнуть элемент списка Full Benchmark, но мой код для него не распознает элемент списка. Это то, что у меня есть:

UiScrollable listView = new UiScrollable(new UiSelector().scrollable( true).className("android.widget.ListView")); UiObject item1 = listView.getChildByText(new UiSelector() .className(android.widget.TextView.class.getName()), "Full Benchmark"); item1.click(); 

Буду признателен за любую помощь!

Вот что я использую, чтобы найти, а затем щелкните элемент в списке:

 //Find and click a ListView item public void clickListViewItem(String name) throws UiObjectNotFoundException { UiScrollable listView = new UiScrollable(new UiSelector()); listView.setMaxSearchSwipes(100); listView.scrollTextIntoView(name); listView.waitForExists(5000); UiObject listViewItem = listView.getChildByText(new UiSelector() .className(android.widget.TextView.class.getName()), ""+name+""); listViewItem.click(); System.out.println("\""+name+"\" ListView item was clicked."); } 

Так что в вашем случае это будет

 clickListViewItem("Full Benchmark") 

Или:

 UiScrollable listView = new UiScrollable(new UiSelector()); listView.setMaxSearchSwipes(100); listView.scrollTextIntoView(name); listView.waitForExists(5000); UiObject listViewItem = listView.getChildByText(new UiSelector() .className(android.widget.TextView.class.getName()), "Full Benchmark"); listViewItem.click(); 

Есть два подхода к вышеупомянутой вещи.

Подход 1:

  1. Проанализируйте пользовательский интерфейс, а затем получите экземпляр списка. Скажем, список, содержащий текст, является третьим списком
  2. Создайте объект Uicollection, например UiCollection dummyList = new UiCollection(new UiSelector().className("android.widget.ListView").index(3));
  3. Создать объект для Benchmark UiObject dummyBenchmark = dummyList.getChildByText("Full Benchmark");

Подход 2:

 new UiScrollable( new UiSelector().scrollable(true) ).scrollIntoView( new UiSelector().text("Full BenchMark") ); new UiObject( new UiSelector().text("Full BenchMark") ).click(); 

Есть два TextViews внутри вложенной ViewGroup, наиболее вероятно LinearLayout. Это, по-видимому, отсутствует в критериях отбора.