0

我自動化一個iPhone應用程序的一些測試用例,我正在使用UIAutomation類。我想使用功能performTaskWithPathArgumentsTimeout,我相信它運行一些外部腳本。但我無法使用它。我有以下代碼:如何使用UIAutomation類的函數performTaskWithPathArgumentsTimeout?

#import "revision3.js" 
#import "tuneup/tuneup.js" 
test("script call", function(target, app){ 
var target = UIATarget.localTarget(); 
var host = target.host(); 
var result = host.performTaskWithPathArgumentsTimeout("fwasim/Desktop/registration.js, ["null"], 5); 

UIALogger.logDebug("exitCode: " + result.exitCode); 
UIALogger.logDebug("stdout: " + result.stdout); 
UIALogger.logDebug("stderr: " + result.stderr); 
}); 

儀器控制檯說:

Error: launch path not accessible.

我已經在互聯網上搜索,但似乎有在UIAutomation類非常稀缺的資源,更具體地說上述功能。誰能告訴我我做錯了什麼?

回答

4

主機上的performTaskWithPathArgumentsTimeout()方法用於執行不是JavaScript的shell程序。該錯誤消息告訴您,它無法在您提供的路徑中找到可執行的命令。

這裏是你如何能與該方法執行命令:

var result = host.performTaskWithPathArgumentsTimeout("/usr/bin/whoami", [], 5); 

執行的whoami命令住在/usr/bin目錄。該命令只是輸出已登錄的用戶名,您可以使用result.stdout,因爲您已經在使用該用戶名。

雖然我不太清楚你在這裏做什麼。從你試圖執行的腳本的外觀(fwasim/Desktop/registration.js),你只是試圖運行一些註冊測試,在不同的文件?如果是這樣,有一個更簡單的方法來做到這一點。只需鍵入:

#import "fwasim/Desktop/registration.js" 

試圖導入JavaScript文件,如果它是相對於運行該腳本文件的目錄。你只需要performTaskWithPathArgumentsTimeout()如果你想執行一個外部shell腳本或類似的東西。這不是用於在UI自動化中執行JavaScript的。

+0

感謝您的回覆。其實我試圖讓'performTaskWithPathArgumentsTimeout()'函數工作,並看看它是如何工作的。我不知道這個函數只能用於運行shell程序,相反我以爲這可以用來運行任何一段代碼。我最終的目標是從UIAutomation運行一個外部腳本,該腳本會執行一些操作,要求我退出正在測試的應用程序。例如,一個測試用例需要我添加一個新的聯繫人到地址簿並檢查應用程序中的彈出窗口。我希望腳本能做這樣的事情。 –

+0

好吧,我試着修改我的代碼如下: –

相關問題