2015-07-04 40 views
0

我想在我的运行过程中识别一些属性,并形成一个json对象,我想写入一个“.json”文件并将其保存在磁盘上。如何在ui自动化中读取和写入文件(Javascript)?

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(); 
} 

function WriteFile() 
{ 
    // Create an instance of StreamWriter to write text to a file. 
    sw = new StreamWriter("TestFile.txt"); 
    // Add some text to the file. 
    sw.Write("This is the "); 
    sw.WriteLine("header for the file."); 
    sw.WriteLine("-------------------"); 
    // Arbitrary objects can also be written to the file. 
    sw.Write("The date is: "); 
    sw.WriteLine(DateTime.Now); 
    sw.Close(); 
} 

但仍无法读取和写入数据从UI自动化仪表

可能的解决方法文件? 如果我们可以从我的ui自动化脚本执行一个终端命令,重定向到stdout。那么我们可以从脚本执行终端命令吗?

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

+0

你使用的是什么样的UI自动化工具,这个脚本是在普通浏览器中执行的吗? –

+0

@ZigmaEmpire我试图执行正常的浏览器脚本,其中我的文书脚本 –

+0

是这个脚本目前在浏览器上运行,如谷歌浏览器,Firefox?或者是什么? –

回答

0

您的假设很好,但XCode UI Automation脚本不是完整的JavaScript。

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

set fso = CreateObject("Scripting.FileSystemObject"); 

不是JavaScript,它只是VBScript,它只能在Microsoft平台和QTP等测试工具中使用。

Scripting.FileSystemObject 

是一个ActiveX对象,它仅仅存在于微软的Windows

只有极少数的JavaScript功能,如基本的数学,数组,... etc..Are通过苹果的JavaScript库提供的,所以你是有限的只使用如果你想要做更多的脚本,然后尝试硒IOS驱动程序在这里https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/UIAutomationRef/

提供的类http://ios-driver.github.io/ios-driver/

0

嘿所以这就是我一直在寻找到一个项目的东西,但从来没有完全得到围绕着实施,所以这个答案将比一步一步的复制和粘贴更适合做什么的指导。

首先,您将需要创建一个写入文件的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格式将由您决定。看一些例子,我不认为这会很难实现,但显然你首先需要考虑一下。