2012-10-06 1 views
1

방금 ​​tuneup.js로 UIAutomation을 시도하기 시작했습니다. 내 첫 창을 잘 테스트 할 수는 있지만 두 번째 창은 실패합니다. 내 응용 프로그램은 여전히 ​​첫 번째 창을보고 있으며 예를 들면 다음과 같습니다. "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