[英]How to read and write to a file (Javascript) in ui automation?
我想在运行期间识别一些属性,并形成一个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();
}
和
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自动化脚本中执行终端命令,则重定向到标准输出。 那么我们可以从脚本执行终端命令吗?
尚未尝试:1.假设我们可以包含具有这些方法的库并进行尝试。
您的假设很好,但是XCode UI Automation脚本不是完整的JavaScript。
我认为您不能在XCode UI Automation脚本中简单地编写基于普通浏览器的JavaScript。
set fso = CreateObject("Scripting.FileSystemObject");
它不是JavaScript,而是VBScript,只能在Microsoft平台和QTP等测试工具中使用。
Scripting.FileSystemObject
是仅在Microsoft Windows中存在的ActiveX对象
Apple JavaScript库仅提供了很少的JavaScript函数,如基本Math,Array等。因此,您只能使用此处提供的类https://developer.apple.com/library/ios/documentation / DeveloperTools / Reference / UIAutomationRef /
如果要执行更多脚本编写,请尝试Selenium IOS驱动程序http://ios-driver.github.io/ios-driver/
嘿,这是我一直在寻找一个项目的东西,但从未完全实施它,因此,此答案将比分步复制和粘贴更多地是操作指导。
首先,您将需要创建一个写入文件的bash脚本。 这可以很简单
!/bin/bash
echo $1 >> ${filename.json}
然后从Xcode Instruments UIAutomation工具内部调用
var target = UIATarget.localTarget();
var host = target.host();
var result = host.performTaskWithPathArgumentsTimeout("your/script/path", ["Object description in JSON format"], 5);
然后,在自动化结束后,您可以加载计算机上的文件路径以查看结果。
编辑:这将允许逐行写入文件,但是实际的JSON格式由您决定。 查看一些示例,我认为实现起来并不困难,但是显然您首先需要考虑一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.