我正在使用仪器的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验证屏幕的组件和属性?
答案 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之前就可以了。