由于我正在使用 Instruments 的 UIAutomation 工具,我需要以下信息:
1) 是否有任何动态提供数据的程序。例如,如果我需要使用此脚本来测试 Textfield 的不同数据,如何在不修改硬编码 Textfield 值的脚本的情况下实现?我不想通过 javascript 中的手动循环来实现?是否可以使用 Sqlite,javascript 将通过它获取文本字段值列表? 我是 ios in instruments 中的新 UIautomation。以下行是脚本中的第一条命令
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>
任何人都可以帮助如何通过上述命令动态地给出设置值?有没有其他方法可以在不手动更改脚本的情况下动态地为用户名设置值?
2)是否可以在UIAutomation中通过javascript验证屏幕的组件和属性?
最佳答案
1.
是的。您应该编写一个系统级脚本,从数据生成 JavaScript 代码并从命令行调用 Instruments。示例脚本是:
#!/bin/bash
echo 'var thisIsAGeneratedInput = "样本输入变量";' > 输入.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 之前是可以的。
关于javascript - UIautomation 中的不同输入无需手动修改脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851845/