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