Узлы NAF, автоматизация с помощью Robotium

У меня проблема с доступом к некоторым компонентам пользовательского интерфейса с помощью Robotium. Я обнаружил, что есть некоторые узлы (узлы NAF), которые недоступны из автоматизированного инструмента, такого как Robotium.

Есть ли способ получить к ним доступ? Я бы не использовал щелчок, используя определенные координаты.

Не могли бы вы предложить мне лучшие практики для таких проблем?

Это изображение макета из UI Automator.

UI Automator захват экрана


person Flavio Capaccio    schedule 03.12.2013    source источник


Ответы (1)


Если вы хотите получить доступ к элементам определенного представления списка, следующий код должен помочь вам в этом:

ListView lv = (ListView) solo.getView(id); //id is R.id.(list view id).
if (lv.getChildCount() > 0) {
    for (int i = 0; i < lv.getAdapter().getCount(); i++) {
    // Code to access each row of the list view. In my case each row is a linear layout and       has a text view.
        LinearLayout linearLayout = (LinearLayout) Utils.getViewAtIndex(lv, i,
                    getInstrumentation());
        TextView accountName = (TextView) linearLayout.findViewById(R.id.(TextView id));
    }
}
person Nisha    schedule 09.12.2013
comment
Этот код почти не связан с макетом; поэтому, если макет изменится, этот код следует сохранить. Я хотел бы идентифицировать кнопку, используя ее идентификатор, описание содержимого или другое; но моя проблема в том, что я не могу этого сделать... - person Flavio Capaccio; 10.12.2013
comment
Да, я знаю. Но если бы макет мог измениться, то и идентификаторы тоже могли бы измениться. Я думаю, что это верно для любого кода, который мы пишем с помощью Robotium, в некоторой степени он жестко связан. Дайте мне знать, если вы найдете лучшее решение. - person Nisha; 10.12.2013
comment
Мы договорились с нашей командой разработчиков не менять Id уже объявленных компонентов; так что проблема частично решена. Мне нужно решение для этого, и как только я смогу нажать кнопку, используя их идентификаторы, я дам вам знать! - person Flavio Capaccio; 10.12.2013