Я пытаюсь использовать UIAutomation в инструментах с iPhone Simulator и последней версией iOS SDK 4.1.Вот фрагмент кода javascript, с которым возникла проблема:
// there are sufficient delays here to make sure the view is loaded
UIATarget.localTarget().frontMostApp().logElementTree();
main.buttons()["theButton"].tap();
UIALogger.logMessage("The button tapped");
for (var b = 0; b < main.buttons().length; b++)
{
UIALogger.logMessage("Button title: " + main.buttons()[b].name());
}
main.toolbar().buttons()["OK"].tap();
UIALogger.logMessage("OK tapped");
Имя кнопки «theButton» отображается в logElementTree, а также отображается, когда я регистрирую имена всех кнопок, поэтомуон правильно настроен в Интерфейсном Разработчике, но по какой-то причине он не используется.У меня есть другие кнопки ранее в скрипте, которые нажимаются просто отлично, и если я отменяю скрипт в точке не нажатой кнопки, я могу нажать на кнопку в симуляторе, и она работает как положено.
РЕДАКТИРОВАТЬ: в javascript для цикла, показанного выше, я сделал так, чтобы он касался каждой из кнопок в массиве main.buttons (), и только 1 из 12 идентичных кнопок в представлении получает нажатие.Кроме того, если вам интересно, у меня есть этот код в верхней части файла javascript:
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var main = app.mainWindow();
А вот строка, которая показывает информацию о кнопке из последовательности записей, которые logElementTree помещает в журналсообщения:
4) UIAButton [name:theButton value:(null) NSRect: {{25, 93}, {74, 74}}]