Я работал над написанием некоторых сценариев автоматизации для приложения, которое я пишу, и пытался заставить работать следующую функцию.Я смог, наконец, завершить его правильно, но с другим кодом.Следующие два фрагмента кода, на мой взгляд, одинаковы, но, похоже, работает только ПЕРВЫЙ.Я хотел бы получить представление о том, почему.Это мои навыки 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.");
}