Xcode UI测试无法找到以编程方式添加的视图

时间:2016-04-21 17:15:11

标签: ios xcode xcode7 xcode-ui-testing ui-testing

所以我以编程方式在我的视图中添加了一个子视图,当我这样做时,我将所有可访问性参数添加到它:

  [labelView setAccessibilityLabel:@"label"];
  [labelView setIsAccessibilityElement:YES];
  [labelView setUserInteractionEnabled:YES];

但是当我像这样查询用户界面时:

 let app = XCUIApplication()
 app.staticTexts["label"]

测试失败,因为找不到视图。

任何想法如何解决这个问题,如何为UI测试提供动态添加的视图?

2 个答案:

答案 0 :(得分:11)

您需要确保标签视图的容器视图(UIEditText?)没有将isAccessibilityElement设置为YES。如果是这样,它将隐藏其子视图(您的标签)的可访问性。

Accessibility Programming Guide

中检查使自定义容器视图的内容可访问

答案 1 :(得分:0)

我有一个不同的解决方案,因为我给自己带来了一个以相同方式表现出来的不同问题,即XCUITests无法找到基本元素。我的应用程序使用UIWindow设为UIWindow.windowLevel的{​​{1}}在其他窗口上方显示全屏加载微调器。事实证明,即使此窗口不在视图层次结构,可访问性层次结构或响应者链之内,仅由于其存在,它也会破坏UI测试使用的可访问性/视图层次结构爬网系统。

为验证这一点,我从应用程序中完全删除了额外的.normal + 2个实例。最终,此修复程序变得更简单了,只使用UIWindow而不是将常数添加到UIKit的常数中。