Различные входы в UIautomation без изменения скрипта вручную

Поскольку я использую инструмент UIAutomation Instruments, мне нужна информация в следующем:

1) есть ли какая-либо процедура для динамического предоставления данных. Например, если мне нужно использовать этот сценарий для проверки различных данных для текстового поля, как я могу добиться этого без изменения сценария для жестко закодированного значения текстового поля? Я не хочу выполнять ручной цикл в javascript? Можно ли использовать Sqlite, через который javascript будет принимать список значений текстового поля? Я новичок в UIautomation в инструментах в ios. Следующая строка — первая команда в скрипте.

        UIATarget.localTarget().frontMostApp().mainWindow().textFields()["username"].setValue("test");

Но я хочу указать заданное значение в следующей команде через терминал без изменения фактического сценария.

  instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <full_path_to_application> -e UIASCRIPT <path_to_script.js> -e UIARESULTSPATH <output_results_path>

Кто-нибудь может помочь, как динамически задать setvalue с помощью вышеуказанной команды? Есть ли другой способ динамически задать setvalue для имени пользователя без изменения сценария вручную?

2) можно ли проверить компоненты и атрибуты экрана через javascript в UIAutomation?


person senthilMuthu    schedule 08.11.2013    source источник


Ответы (1)


1. Да. Вы должны написать сценарий системного уровня, который генерирует код JavaScript из данных и вызывает инструменты из командной строки. Пример сценария:

#!/bin/bash
echo 'var thisIsAGeneratedInput = "Sample Input variable";' > input.js
instruments -t test.tracetemplate your_app_with_path.app -e UIASCRIPT test.js

Файл «test.js» должен выглядеть так:

#import "input.js"
UIALogger.logMessage(thisIsAGeneratedInput);

2. Функция value() — это правильный способ получить запрошенную информацию, name() возвращает идентификатор доступа, если он задан. Примечание: в XCode 5 value() может не работать, используйте name() в качестве обходного пути, но до версии 5 все было в порядке.

person iOS Developer    schedule 08.11.2013
comment
Не могли бы вы объяснить, как динамически вводить данные в UIAutomation? Если у вас есть учебник. пожалуйста предоставьте. - person senthilMuthu; 08.11.2013
comment
Конечно, но по причинам форматирования откройте новый вопрос. (В комментариях я не могу вставить код.) - person iOS Developer; 15.11.2013
comment
Если вы отредактируете свой ответ, я могу проголосовать за вас. Потому что это менее 50+ наград. Пожалуйста, сделайте все необходимое. - person senthilMuthu; 15.11.2013