2014-01-24 28 views
0

請幫忙!!!我正在嘗試將一些performtaskwithpathargumentstimeout函數添加到我的ios UI自動化JavaScript中。具體來說,我在應用程序中提交了一個表單,隨後想檢查它是否已成功提交。但是我有問題。iOS UI自動化 - performtaskwithpatharguments-捲曲

我想做幾件事情。理想的做法是對URL執行curl請求,然後搜索返回的stdout正文以確保有幾個關鍵字在那裏。然而,當我嘗試使用result.stdout上的任何indexOf或.search函數時,儀器不斷崩潰...

我認爲另一種選擇是將html輸出到文件,然後通過編寫命令行應用程序來搜索該文件它將搜索作爲參數傳遞的關鍵字。然而,當我嘗試和輸出文件的目錄使用以下各項

var target = UIATarget.localTarget(); 

var host = target.host(); 

result = target.host().performTaskWithPathArgumentsTimeout("usr/bin/curl", ["-o /Users/andrewweaver/Documents/output.html", "http://www.google.co.uk"], 30); 

UIALogger.logDebug("exitCode: " + result.exitCode); 

UIALogger.logDebug("stdout: " + result.stdout); 

UIALogger.logDebug("stderr: " + result.stderr); 

我收到以下錯誤 -

警告:無法創建文件/用戶/我/文檔/輸出html的: \ n警告:沒有這樣的文件或目錄

該目錄確實存在,並且有權限人讀取&寫吧....還有,如果我在該目錄中創建的.html文件同樣的事情很開心ENS。如果我運行從終端能正常工作相同的命令......

我也想做一個寫出來的HTTP代碼...

result = target.host().performTaskWithPathArgumentsTimeout("usr/bin/curl", ["--write-out %{http_code}", "http://www.google.co.uk"], 30); 

但同樣,這是失敗....

curl: option --write-out %{http_code}: is unknown 

我不知道我做錯了什麼....

任何幫助將非常感激: - )

回答

0

修正了它。每個傳遞到performTaskWithPathArgumentsTimeout的args來需要通過「分治」,一,

因此,例如查詢一個網站,並寫輸出到文件...

VAR主機= target.host( ); (「usr/bin/curl」,[「-o」,「/Users/me/Documents/football.html」,「http://www.bbc.co.uk/」],30);以及其中, UDIogger.logDebug(「exitCode:」+ result.exitCode);其中, UDIogger.logDebug(「stdout:」+ result.stdout);其中,

然後搜索我用一個特定元素的grep輸出的文件...

無功海峽=「BBC體育 - 足球」; (「usr/bin/grep」,[「-w」,(str),「/Users/me/Documents/football.html」],15);

UIALogger。logDebug(「exitCode:」+ result.exitCode); UDIogger.logDebug(「stdout:」+ result.stdout);其中,

如果找到正則表達式,則返回0;將BBC Sport - Football作爲標準輸出返回。

然後我就可以使用if語句來基於合格或不合格(或使用熱身JS斷言)預期的表達是否存在...

有用的將請求發送到Web服務,然後驗證的內容。 ..