UIautomation中的不同输入无需手动修改脚本

时间:2013-11-08 04:52:49

标签: javascript iphone ui-automation ios-ui-automation android-testing

我正在使用仪器的UIAutomation工具,我需要以下信息:

1)是否存在动态提供数据的任何程序。例如,如果我需要使用此脚本来测试Textfield的不同数据,那么如何在不修改硬编码Textfield值的脚本的情况下实现?我不想通过javascript中的手动循环来完成?是否可以使用Sqlite,javascript将采用文本字段值列表?   我是ios中仪器的新UIautomation。以下行是脚本中的第一个命令

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

但是我想通过终端在以下命令中给出setvalue而不改变实际的脚本

  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>

任何人都可以通过dyanmically帮助如何通过上面的命令给出setvalue?是否可以动态地为用户名设置值,而无需手动更改脚本?

2)是否可以通过UIAutomation中的javascript验证屏幕的组件和属性?

1 个答案:

答案 0 :(得分:2)

1.是的。您应该编写一个系统级脚本,从数据生成JavaScript代码并从命令行调用Instruments。示例脚本是:

#!/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()返回可访问性ID(如果给出)。注意:在XCode 5 value() might not work中,使用name()进行解决方法,但在版本5之前就可以了。