Попытка получить доступ к кнопке панели инструментов - ноль - PullRequest
2 голосов
/ 15 марта 2012

Я работал над написанием некоторых сценариев автоматизации для приложения, которое я пишу, и пытался заставить работать следующую функцию.Я смог, наконец, завершить его правильно, но с другим кодом.Следующие два фрагмента кода, на мой взгляд, одинаковы, но, похоже, работает только ПЕРВЫЙ.Я хотел бы получить представление о том, почему.Это мои навыки JavaScript (в лучшем случае слабые) или что-то специфическое для UIAutomation?

// Define some global variables -- THIS WORKS
var target = UIATarget.localTarget();
var app = target.frontMostApp().mainWindow();
var toolbarButtons = app.toolbar().buttons();
toolbarButtons["Back"].tap();

Это не удается ...

var target = UIATarget.localTarget();
var app = target.frontMostApp().mainWindow();
var backButton = app.toolbar().buttons()["Back"];
backButton.tap();

Второй (неудачный) фрагмент кодаговорит, что я получаю нулевое значение для кнопки.Если бы кто-то мог помочь указать, почему этот второй подход не верен, я был бы очень признателен.Я должен нажать кнопку назад несколько раз, и backButton.tap () просто кажется чище.

ОБНОВЛЕНИЕ: Ниже приведен точный код, который не удается

// Define some global variables
var target = UIATarget.localTarget();
var app = target.frontMostApp().mainWindow();

// List everything we see
UIALogger.logStart("Logging app...");
app.logElementTree();
UIALogger.logPass();

// Function for moving into and out of every home screen option
var homeToViewAndBack = function() {
    var backButton = app.toolbar().buttons()["Back"];
    // Let's go down the list of buttons

    app.buttons()["VideoHomeButton"].tap();
    backButton.tap();

    UIALogger.logPass("Basic navigation works.");
}

// Call our functions
homeToViewAndBack();

Это даетerror "Сценарий выдал неперехваченную ошибку JavaScript: Невозможно выполнить действие с недопустимым элементом: UIAElementNil из target.frontMostApp (). mainWindow (). toolbar (). buttons () [" Back "]".Тем не менее, код в первом фрагменте выше работает как талисман.

Чтобы подтвердить еще раз, я изменил текст на кнопке «Назад» на «Домой» и попробовал следующий код ... первый звонок назадкнопка работает, но вторая не срабатывает:

var homeToViewAndBack = function() {
var toolbarButtons = app.toolbar().buttons();
var backButton = app.toolbar().buttons()["Home"];
// Let's go down the list of buttons
app.buttons()[0].tap();
toolbarButtons["Home"].tap();

app.buttons()[1].tap();
backButton.tap();

UIALogger.logPass("Basic navigation works.");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...