2013-09-14 2 views
1

Я получаю эту ошибку в сценарии автоматизации, написанном для моего приложения. Ниже мой сценарий:Ошибка UIAutomation в IOS

var testName = "Test 1"; 
var target = UIATarget.localTarget(); 
var app = target.frontMostApp(); 
var window = app.mainWindow(); 
window.textFields()[0].setValue("Hello"); 

В строке 5 я получаю "не может выполнить действие на недействительный элемент:.. UIAElementNil из target.frontMostApp() MainWindow() TextFields() [0]".

то, что может быть причиной выше ошибки

ответ

1

Это потому, что TextFields() [0] равна нулю.

метод mainWindow возвращает окно, а textFields() должен отображаться в представлении UIViewController.

+0

Могу ли я написать сценарий автоматизации (с использованием javascript) на ios, чтобы он мог переключаться между приложениями. Также я хочу знать, могу ли я получить доступ к настройкам в iPhone через скрипт автоматизации – user2533604

0

Как уже говорилось в FenixAdar, проблема в том, что вы хотите получить доступ к элементу текстового поля через несуществующую цепочку иерархии. Чтобы получить реальную иерархию элементов пользовательского интерфейса, вы можете вставить команду target.logElementTree(); перед проблемной строкой. Используя вывод этой команды, вы сможете угадать правильное выражение.

Но еще проще записывать с помощью Instuments при заполнении этого текстового поля и проверять сгенерированный код.

Смежные вопросы