在XCode中的UI测试期间无法访问自定义视图

时间:2015-12-15 11:58:18

标签: ios xcode swift xcode-ui-testing

在我的应用中,有一个标签包含在一个简单的视图中。 该视图有一个水龙头识别器,它将触发一个功能(&#34;为什么不使用一个按钮?&#34;你可能会问......好吧,我们必须执行一些时髦的动画,这是我们最好的布局) 。问题是我无法访问此视图以模拟其上的点击。 我可以使用protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterControllers(); builder.Register(c => GetTransform()).As<ITransform>(); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); } private ITransform GetTransform() { if (Session["Transform"] == null) Session["Transform"] = new Transform(); return (ITransform)Session["Transform"]; } 访问标签,但是如果我点击它(希望传播到父视图)。 记录我点击标签的会话将产生app.staticText["Enter name..."]命令,但播放它会产生同样的错误。

我尝试在Storyboard中激活该视图的辅助功能单元并为其提供一个ID,以便使用此命令获取它:

app.staticText["Enter name..."]

但是一旦这个标志被检查并且我运行我的测试,应用程序就会进入一种循环循环,一遍又一遍地显示这个消息:

app.windows.elementMatchingType(.Any, identifier: "MyView")

此视图不在表格内,而是在主视图中。我怎样才能访问它?

编辑1: 这是app.DebugDescription()的输出(感谢@Che的建议):

Find: Elements matching predicate '"MyView" IN identifiers'

2 个答案:

答案 0 :(得分:11)

您是否可以访问应用中的其他元素?你能成功点击smth吗? 您可以通过

查看您的应用层次结构
let app = XCUIApplication()
print(app.debugDescription)

并尝试了解您的视图在哪里以及它是什么元素类型(例如,它可以是.otherElement:))

答案 1 :(得分:3)

根据日志输出,您提供的img_url标识符没有视图。 您可以在MyView属性的帮助下进行设置。