2012-10-06 51 views
1

我剛開始嘗試UIAutomation與tuneup.js。我可以測試我的第一個窗口,但第二個窗口失敗 - 我的應用仍在查看第一個窗口,並看到例如「使用Facebook登錄」按鈕。我嘗試添加延遲,但這似乎沒有幫助。任何想法我做錯了什麼?推後新視圖控制器(tuneup.js)UIAutomation測試失敗

#import "tuneup.js" 

target = UIATarget.localTarget(); 
application = target.frontMostApp(); 

test("Test first-run view controller", function(app, target) { 
assertWindow({ 
       buttons : [ 
         { name : "Sign in with Facebook"}, 
         { name : "Create account"}, 
         { name : "Login"}, 
         { name : "Try"} 
       ], 
       onPass: function(window) { 

       var createAccountButton = window.buttons()["Create account"] 
       createAccountButton.tap(); 
       } 

}); 

}); 

test("Test Sign-in screen", function(app, target) { 
assertWindow({ 
    buttons : [ 
       { name : "Sign up"} 
     ] 
}); 

}); 

回答

0

啊,我發現發生了什麼事情。我沒有意識到,但我的登錄屏幕有一個包含按鈕的滾動視圖。此代碼工作正常:

test("Test the account creation", function(app, target) { 
assertWindow({ 
       scrollViews: [ 
        { buttons : [ 
          {name :"Sign up"}, 
          {name : "Terms and Conditions"} 
          ] 

       } 
          ], 
       onPass: function(window) { 
       var signUpButton = window.scrollViews()[0].buttons()["Sign up"]; 
       signUpButton.tap() 
       } 
}); 

}); 
+0

想知道您的腳本是否在真實設備上運行?模擬器?或沒有? – munmunbb

+0

嘿@WendyMunmunWang,如果我沒有記錯的話,我在這兩個設備和模擬器上運行腳本,但是我查看tuneup.js已經很長時間了。 Apple不贊成使用基於JS的UIAutomation,並添加了一個新的基於Objective-C的UI測試功能。 – MaxGabriel

+0

@MaxBabriel您認爲可以在不使用任何模擬器或實際設備的情況下運行嗎?我想通過閱讀日誌來獲得測試結果 – munmunbb