我正在为 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);
});
仪器控制台显示:
Error: launch path not accessible.
我在互联网上搜索过,但关于 UIAutomation 类的资源似乎非常稀缺,更具体地说是关于上述功能的资源。谁能告诉我我做错了什么?
最佳答案
主机上的 performTaskWithPathArgumentsTimeout()
方法用于执行 shell 程序而非 JavaScript。该错误消息告诉您它无法在您提供的路径中找到可执行命令。
以下是使用该方法执行命令的方法:
var result = host.performTaskWithPathArgumentsTimeout("/usr/bin/whoami", [], 5);
这会执行位于 /usr/bin
目录中的 whoami
命令。该命令只是打印出登录的用户名,您可以使用 result.stdout
获取您已经在使用的用户名。
不过,我不太确定您要在这里做什么。从您尝试执行的脚本 (fwasim/Desktop/registration.js
) 的外观来看,您只是想运行一些位于不同文件中的注册测试吗?如果是这样,有一种更简单的方法可以做到这一点。只需输入:
#import "fwasim/Desktop/registration.js"
它会尝试导入该 JavaScript 文件,就好像它是相对于正在运行的脚本文件的目录一样。如果您尝试执行外部 shell 脚本或类似的东西,您只需要 performTaskWithPathArgumentsTimeout()
。它不是用于在 UI 自动化中执行 JavaScript。
关于ios - UIAutomation类的函数 ` performTaskWithPathArgumentsTimeout`如何使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10525174/