如何在ui自动化中读取和写入文件(Javascript)?

如何在ui自动化中读取和写入文件(Javascript)?,javascript,json,instruments,ios-ui-automation,Javascript,Json,Instruments,Ios Ui Automation,我想在运行期间识别一些属性,并形成一个json对象,我想将其写入一个“.json”文件并保存在磁盘上 var target = UIATarget.localTarget(); var properties = new Object(); var jsonObjectToRecord = {"properties":properties} jsonObjectToRecord.properties.name = "My App" UIALogger.logMessage("Pretty Prin

我想在运行期间识别一些属性,并形成一个json对象,我想将其写入一个“.json”文件并保存在磁盘上

var target = UIATarget.localTarget();
var properties = new Object();
var jsonObjectToRecord = {"properties":properties}
jsonObjectToRecord.properties.name = "My App"
UIALogger.logMessage("Pretty Print TEST Log"+jsonObjectToRecord.properties.name);
var str = JSON.stringify(jsonObjectToRecord)
UIALogger.logMessage(str);
// -- CODE TO WRITE THIS JSON TO A FILE AND SAVE ON THE DISK --
我试过:

// Sample code to see if it is possible to write data
// onto some file from my automation script
function WriteToFile()
 {

    set fso = CreateObject("Scripting.FileSystemObject");  
    set s = fso.CreateTextFile("/Volumes/DEV/test.txt", True);
    s.writeline("HI");
    s.writeline("Bye");
    s.writeline("-----------------------------");
    s.Close();
 }

但仍然无法从ui自动化仪器读取和写入数据到文件

可能的解决方法?? 如果可以从我的ui自动化脚本执行终端命令,则重定向到标准输出。那么我们可以从脚本中执行终端命令吗

没有尝试过:
1.假设我们可以包含具有这些方法的库并尝试一下

您的假设很好,但XCode UI自动化脚本不是完整的JavaScript

我认为您不能简单地在XCode UI自动化脚本中编写一个普通的基于浏览器的JavaScript

set fso = CreateObject("Scripting.FileSystemObject");
不是JavaScript,而是VBScript,它只能在Microsoft平台和测试工具(如QTP)中工作

Scripting.FileSystemObject
是仅存在于Microsoft Windows中的ActiveX对象

Apple JavaScript库只提供了一些JavaScript函数,如基本数学、数组等,因此您只能使用此处提供的类


如果你想做更多的脚本编写,那么试试Selenium IOS驱动程序。嘿,这是我一直在寻找的一个项目,但从来没有完全落实过,所以这个答案将更像是一个指南,指导你做什么,而不是一步一步地复制和粘贴

首先,您需要创建一个写入文件的bash脚本。这可以简单到

!/bin/bash
echo $1 >> ${filename.json}
然后在Xcode工具的UIAutomation工具中调用它

var target = UIATarget.localTarget();
var host = target.host();

var result = host.performTaskWithPathArgumentsTimeout("your/script/path", ["Object description in JSON format"], 5);
然后,在自动化结束后,您可以在计算机上加载文件路径以查看结果


编辑:这将允许逐行写入文件,但实际的JSON格式将由您决定。查看一些示例,我认为实现起来并不困难,但显然您首先需要考虑一下。

您使用的是哪种UI自动化工具,这个脚本是在普通浏览器中执行的吗?@ZigmaEmpire我试着执行普通浏览器脚本,而在我的仪器脚本中,这个脚本目前运行在像google chrome、firefox这样的浏览器上吗?还是什么?@ZigmaEmpire不,这不是在ui自动化仪器上运行的第一部分,它工作得很好,而WriteToFile是我无法做到的do@ZigmaEmpire在类似的行中寻找解决方案,在那里我可以从自动化脚本写入文件。如果我不清楚,请问我,谢谢:)
var target = UIATarget.localTarget();
var host = target.host();

var result = host.performTaskWithPathArgumentsTimeout("your/script/path", ["Object description in JSON format"], 5);