1

由于我正在使用 Instruments 的 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>

任何人都可以帮助如何通过上述命令动态地给出设置值?是否有其他方法可以动态地为用户名提供 setvalue 而无需手动更改脚本?

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

4

1 回答 1

2

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()如果给定,则返回可访问性 ID。注意:在 XCode 5 中value() 可能无法使用,请使用name()解决方法,但在版本 5 之前它是可以的。

于 2013-11-08T08:54:46.370 回答