是否有可能以JavaScript方式读取本地文件。
MyFolder文件:
db.csv
Parse.js
尝试在Parse.js中获取文件db.csv的内容,但是徒劳无功。
你可以分享一些我可以获得足够知识如何阅读文件的链接。 在Xcode5中运行Instruments,在.js文件中使用测试脚本,我必须从.csv文件中输入一些值。
答案 0 :(得分:3)
iOS UIAutomation,apple提供了在目标主机上运行任务的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。
参考文献:
答案 1 :(得分:1)
如果文件与您所在的站点位于同一个域中,则使用Ajax加载它。如果您正在使用Ajax,那就像
$.get('db.csv', function(csvContent){
//process here
});
请注意,csv文件的路径将相对于您所在的网页,而不是JavaScript文件。
如果您不使用jQuery,则必须手动使用XmlHttpRequest对象进行Ajax调用。
虽然你的问题没有(似乎)处理它,但如果文件位于不同的域上,那么你必须使用jsonP或CORS。
而且,以防这是你的目标,不,你不能,在客户端 JavaScript打开某种Stream并读入文件。那将是一个可怕的安全漏洞。
答案 2 :(得分:0)
这是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;
}
如果您使用的是照明器,则为host().readFromFile(path)
。