2015-07-04 39 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格式將由您決定。看一些例子,我不認爲這會很難實現,但顯然你首先需要考慮一下。