0

我正在为 iPhone 应用程序自动化一些测试用例,并且我正在使用 UIAutomation 类。我想使用该函数performTaskWithPathArgumentsTimeout,我相信它运行一些外部脚本。但我不能使用它。我有以下代码:

#import "revision3.js"
#import "tuneup/tuneup.js"
test("script call", function(target, app){
var target = UIATarget.localTarget();
var host = target.host();
var result = host.performTaskWithPathArgumentsTimeout("fwasim/Desktop/registration.js, ["null"], 5);

UIALogger.logDebug("exitCode: " + result.exitCode);
UIALogger.logDebug("stdout: " + result.stdout);
UIALogger.logDebug("stderr: " + result.stderr);
});

仪器控制台说:

错误:启动路径不可访问。

我在互联网上搜索过,但 UIAutomation 类的资源似乎非常稀缺,尤其是上述功能。谁能告诉我我做错了什么?

4

1 回答 1

4

主机上的performTaskWithPathArgumentsTimeout()方法是用于执行 shell 程序而不是 JavaScript。该错误消息告诉您它在您提供的路径中找不到可执行命令。

以下是使用该方法执行命令的方法:

var result = host.performTaskWithPathArgumentsTimeout("/usr/bin/whoami", [], 5);

执行目录whoami中的命令/usr/bin。该命令只是打印出result.stdout您已经使用的登录用户名。

不过,我不太确定您要在这里做什么。从您尝试执行的脚本 ( fwasim/Desktop/registration.js) 的外观来看,您是否只是尝试运行一些位于不同文件中的注册测试?如果是这样,有一种更简单的方法可以做到这一点。只需输入:

#import "fwasim/Desktop/registration.js"

这会尝试导入该 JavaScript 文件,就好像它是相对于正在运行的脚本文件的目录一样。仅performTaskWithPathArgumentsTimeout()当您尝试执行外部 shell 脚本或类似的东西时才需要。它不适用于在 UI 自动化中执行 JavaScript。

于 2012-05-14T02:15:03.107 回答