ios - UIAutomation类的函数 ` performTaskWithPathArgumentsTimeout`如何使用?

标签 ios automated-tests functional-testing ios-ui-automation

我正在为 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/

相关文章:

iOS:无法在 UITableViewController 上创建自定义 View

vue.js - testcafe - 上传文件

testing - 等待两个条件,直到其中一个成功

ios - 如何使键盘扩展名更短(通过info.plist键)

ios - 如果用户拒绝推送通知提示的回调方法?

javascript - 我们可以用 cypress 测试元素文本是否包含 text_A 或 text_B 吗?

ajax - Yii、Selenium 和多个提交按钮

grails - 在一个GebReportingSpec中驱动两个不同的浏览器?

javascript - 在 javascript 中创建对象(使用 new)有什么优点?

ios - 在 uiwebview 中渲染 svg 会导致内存压力(和应用程序崩溃)