2012-10-06 130 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