有没有一种可能的方法来读取 JavaScript 中的本地文件。
我的文件夹:
db.csv
Parse.js
试图在 Parse.js 中获取文件 db.csv 的内容,但徒劳无功。
你能分享一些链接,我可以获得足够的知识如何阅读文件。在 Xcode5 中运行 Instruments,在 .js 文件中使用测试脚本,我必须从 .csv 文件中输入一些值。
有没有一种可能的方法来读取 JavaScript 中的本地文件。
我的文件夹:
db.csv
Parse.js
试图在 Parse.js 中获取文件 db.csv 的内容,但徒劳无功。
你能分享一些链接,我可以获得足够的知识如何阅读文件。在 Xcode5 中运行 Instruments,在 .js 文件中使用测试脚本,我必须从 .csv 文件中输入一些值。
iOS UIAutomation,苹果提供了一个用于在目标主机上运行任务的api。
performTaskWithPathArgumentsTimeout
使用它,我们可以有一个 bash 脚本来打印我们想要在第一种情况下获取的文件的内容。
Bash 脚本可以像这样简单地满足这个要求。
#! /bin/bash
FILE_NAME="$1"
cat $FILE_NAME
将其另存为例如 FileReader.sh 文件。
在您的自动化脚本中,
var target = UIATarget.localTarget();
var host = target.host();
var result = host.performTaskWithPathArgumentsTimeout(executablePath,[filePath,fileName], 15);
UIALogger.logDebug("exitCode: " + result.exitCode);
UIALogger.logDebug("stdout: " + result.stdout);
UIALogger.logDebug("stderr: " + result.stderr);
其中,executablePath 是需要执行命令的位置。
var executablePath = "/bin/sh";
filePath 是创建的 FileReader.sh 文件的位置。执行时,将内容输出到标准输出(在我们的要求中)。[给出文件的完整绝对路径]
fileName 是要从中获取内容的实际文件。[给出文件的完整绝对路径] 就我而言,我有一个 Contents.csv 文件,我必须阅读它。
最后一个参数是以秒为单位的超时。
希望这对其他人有所帮助,尝试获取内容(读取文件)以执行 iOS UIAutomation。
参考:
如果该文件与您所在的站点位于同一个域中,您将使用 Ajax 加载它。如果您使用的是 Ajax,则类似于
$.get('db.csv', function(csvContent){
//process here
});
请注意,csv 文件的路径将与您所在的网页相关,而不是 JavaScript 文件。
如果您不使用 jQuery,则必须手动使用 XmlHttpRequest 对象来执行 Ajax 调用。
尽管您的问题(似乎)没有处理它,但如果文件位于不同的域中,那么您必须使用 jsonP 或 CORS。
而且,以防这是您的目标,不,您不能,在客户端JavaScript 打开某种 Stream 并读取文件。那将是一个巨大的安全漏洞。
这是Illuminator的宿主函数库中一个相当简单的函数:
function readFromFile(path) {
var result = target.host().performTaskWithPathArgumentsTimeout("/bin/cat", [path], 10);
// be verbose if something didn't go well
if (0 != result.exitCode) {
throw new Error("readFromFile failed: " + result.stderr);
}
return result.stdout;
}
如果您使用的是 Illuminator,这是host().readFromFile(path)
.