UI Automation FrameWork для iPhone - PullRequest
       0

UI Automation FrameWork для iPhone

0 голосов
/ 06 июля 2010

Я изучаю недавно представленный фреймворк UI Automation в iphoneOS 4.0.Кто-нибудь проверял их приложение, используя эту платформу.Я буду признателен за любую помощь.

Я пытаюсь протестировать пример приложения, которое просто содержит текстовое поле и кнопку.Я написал скрипт как


UIALogger.logStart("Starting Test");

var view = UIATarget.localTarget().frontMostApp().mainWindow().elements()[0];
var textfields = view.textFields();
if (textfields.length != 1) {
    UIALogger.logFail("Wrong number of text fields");
} else {
    UIALogger.logPass("Right number of text fields");
}

textfields[0].setValue("anurag");

view.buttons()[0].tap();

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

В инструментах появляется сообщение «Что-то еще произошло».

Ответы [ 2 ]

4 голосов
/ 15 июля 2010

Если ваше главное окно содержит кнопку и текстовое поле (в этом порядке в иерархии), тогда ваша первая строка кода вернет вам элемент UIAButton, поэтому следующая строка неверна, потому что вы пытаетесь вызвать textFields() на кнопке.

Первая часть должна выглядеть следующим образом:

var view = UIATarget.localTarget().frontMostApp().mainWindow();
var textfields = view.textFields();
if (textfields.length != 1) {
    UIALogger.logFail("Wrong number of text fields");
} else {
    UIALogger.logPass("Right number of text fields");
}

И в этом случае я думаю, что есть два способа проверки касания и текстового поля.Примерно так:

textfields[0].setValue("anurag");
view.buttons()[0].tap();

или примерно так:

view.elements()[1].setValue("anurag");
view.elements()[0].tap();

И лично я предпочитаю получать объекты, используя метку доступности вместо индекса.Для получения дополнительной информации посмотрите Ссылку класса UIAElement и посмотрите здесь: Коллекция ссылок автоматизации пользовательского интерфейса

0 голосов
/ 01 февраля 2011

Все это будет работать только в том случае, если приложение создано с помощью этого средства обеспечения доступности (его собственный протокол доступности: помечая все его элементы управления пользовательским интерфейсом в Интерфейсном Разработчике именами, устанавливая метку Доступности в уникальное значение для представления) , Или если вы работаете со стандартными элементами управления iPhone.

Если приложение не содержит ничего подобного, вы не сможете многое сделать с помощью автоматизации пользовательского интерфейса и увидите только пустой холст размером 320x480.

Вы можете проверить эту ссылку для более подробной информации.

Например, я работаю над приложением OpenGL, которое не было построено ни с одним тегом доступности, и я не вижу ничего через UI Automation, кроме пустой формы 320x480.

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