所以我以编程方式在我的视图中添加了一个子视图,当我这样做时,我将所有可访问性参数添加到它:
[labelView setAccessibilityLabel:@"label"];
[labelView setIsAccessibilityElement:YES];
[labelView setUserInteractionEnabled:YES];
但是当我像这样查询用户界面时:
let app = XCUIApplication()
app.staticTexts["label"]
测试失败,因为找不到视图。
任何想法如何解决这个问题,如何为UI测试提供动态添加的视图?
答案 0 :(得分:11)
您需要确保标签视图的容器视图(UIEditText?)没有将isAccessibilityElement
设置为YES。如果是这样,它将隐藏其子视图(您的标签)的可访问性。
答案 1 :(得分:0)
我有一个不同的解决方案,因为我给自己带来了一个以相同方式表现出来的不同问题,即XCUITests无法找到基本元素。我的应用程序使用UIWindow
设为UIWindow.windowLevel
的{{1}}在其他窗口上方显示全屏加载微调器。事实证明,即使此窗口不在视图层次结构,可访问性层次结构或响应者链之内,仅由于其存在,它也会破坏UI测试使用的可访问性/视图层次结构爬网系统。
为验证这一点,我从应用程序中完全删除了额外的.normal + 2
个实例。最终,此修复程序变得更简单了,只使用UIWindow
而不是将常数添加到UIKit的常数中。