Ios 元素在运行时不保留其脚本可访问性标识符或类型

Ios 元素在运行时不保留其脚本可访问性标识符或类型,ios,swift,storyboard,xcode-ui-testing,Ios,Swift,Storyboard,Xcode Ui Testing,我有一个自动化的UI测试,通过使用XUIElement这样的查询来搜索页面,确保页面显示正确的元素 let instructionLabelID = "UIA_HelpViewController_InstructionLabel" let callViewID = "UIA_HelpViewController_CallTextView" var instructionLabel: XCUIElement { return app.staticTexts[instructionLabelID

我有一个自动化的UI测试,通过使用XUIElement这样的查询来搜索页面,确保页面显示正确的元素

let instructionLabelID = "UIA_HelpViewController_InstructionLabel"
let callViewID = "UIA_HelpViewController_CallTextView"

var instructionLabel: XCUIElement { return app.staticTexts[instructionLabelID] }
var instructions: String { return instructionLabel.label }

var callLabel: XCUIElement { return app.textViews[callViewID] }
var callText: String { return callLabel.value as! String }
下面是相应的故事板

由于未找到突出显示的视图,测试失败,即使我们可以在情节提要中看到其标识符是正确的。使用断点,我可以在运行时检查所有元素,结果如下


正如我们所看到的,第一个元素是正确的,因为它位于另一个元素(其容器视图)下,具有类型StaticText,并且具有标识符。然而,第二个元素似乎被合并到它的容器中,而不是它的子元素。两个容器都未选中可访问性启用选项。如何解决此问题?

看起来您已将文本视图设置为容器上的accessibilityTraits=.notEnabled,而不是将isAccessibilityElement=false


如果可能,尝试在代码中而不是在情节提要中设置这些属性,因为这样可以提供更多的控制-情节提要值很容易被覆盖,但如果在代码中设置,则可以控制标识符的设置时间,并在有任何干扰时覆盖它们。

我也有此IB Designables构建错误,虽然一切都还在运行,所以我不确定是否相关-file:///Users/jason/company-ios-module-module/Pods/CoShared/Resources/iOS/Storyboards/QA.storyboard: 错误:IB可设计项:无法呈现和更新HelpViewController(bf9-4a-BGY)的自动布局状态:dlopen(CoShared.framework,1):image not found您似乎已将文本视图设置为具有accessibilityTraits=。容器上的notEnabled而不是设置isAccessibilityElement=false,您是否可以确认如何禁用可访问性?您是否可以添加注释作为答案,以便我可以接受?我正在通过故事板设置可访问性。进入相应的swift文件并通过代码进行设置,我发现一个扩展名是硬编码的isAccessibilityElement为true,这就是为什么它忽略了我为禁用它所做的任何操作,并对其进行了响应和调整,以包含您发现的内容,这样可能会帮助发现此问题的其他人:)搜索容器的outlet变量名称发现了罪魁祸首。非常感谢。