Как определить, какие кнопки включены в iOS UI Automation? - PullRequest
0 голосов
/ 31 октября 2011

Используя инструмент автоматизации пользовательского интерфейса, я знаю, как проверить, включена ли конкретная кнопка в моем приложении iOS:

if( btn[0].isEnabled() ) {
    UIALogger.logPass("button enabled");  
} else  {
    UIALogger.logFail("button not enabled");  
}

Однако я хотел бы иметь возможность определить количество кнопок, которые были включены в интерфейсе, а не только то, включена ли конкретная кнопка. Как я могу определить количество включенных кнопок?

Кроме того, как мне распечатать детали этих кнопок на консоли?

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

Вот функция, которая принимает UIAElementArray (т.е. app.mainWindow (). Buttons ()) и регистрирует количество включенных кнопок:

function printEnabledButtons(list) {
    var enabledButtons = 0;
    for (var i=0;i<list.length;i++) {
        if (list[i].isEnabled()) {
            //UIALogger.logDebug("button " + list[i].name() + " is enabled");
            enabledButtons++;
        } else {
            //UIALogger.logDebug("button " + list[i].name() + " is not enabled");
        }
    }
    UIALogger.logDebug("number of enabled buttons: " + enabledButtons);
}

Пример кода вызова:

printEnabledButtons(app.mainWindow().buttons());
0 голосов
/ 14 мая 2014

Я немного изменил ваш код. Итак, вот оно:

function checkIfEnabled(list, button_name) {
   var btn_enabled = false;
   var list_length = list.length;
   var list_item;

   for (var list_index=0; list_index < list_length; list_index++) {
       list_item = list[list_index];
       var item_name = list_item.name();

        if (list_item.isVisible () && list_item.isEnabled () &&
            item_name.match(button_name.toString())){
            UIALogger.logMessage ("We're IN !!! ");
            btn_enabled = true;
            break;
        } else {
            btn_enabled = false;
            UIALogger.logMessage ("Still looking for a button");
        }
    }
    return btn_enabled;
}

Вот мое использование этой функции:

    var btn_state = checkIfEnabled(app.navigationBar().buttons(), 
                                   YOUR_BTN_NAME);

Затем вы можете просто проверить, является ли 'btn_state' истинным или ложным в зависимости от ваших потребностей.

Chears

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...