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
Този код едва ли е свързан с оформлението; така че ако оформлението се промени, този код трябва да се поддържа. Бих искал да идентифицирам бутон, като използвам неговия идентификатор или contentDescription или друго; но проблемът ми е, че не мога да го направя... - person Flavio Capaccio; 10.12.2013
comment
Да, знам. Но ако оформлението може да се промени, тогава идентификаторите също могат да се променят... това според мен е вярно за какъвто и код да пишем с Robotium, той е трудно свързан до известна степен. Кажете ми, ако намерите по-добро решение. - person Nisha; 10.12.2013
comment
Ние се съгласихме с нашия екип за разработка да не променяме идентификатора на вече декларирани компоненти; така че този проблем е частично решен. Имам нужда от решение за това и веднага щом мога да щракна върху бутона, използвайки техните идентификатори, ще ви уведомя! - person Flavio Capaccio; 10.12.2013