XCUIElement isAccessibilityElement 返回为 false,即使该元素在视图层次结构中报告为 Is Accessibility Element

Posted

技术标签:

【中文标题】XCUIElement isAccessibilityElement 返回为 false,即使该元素在视图层次结构中报告为 Is Accessibility Element【英文标题】:XCUIElement isAccessibilityElement returning as false even though the element is reported as Is Accessibility Element in View Hierarchy 【发布时间】:2019-06-12 23:36:15 【问题描述】:

有一个 XCUIElement 我的自动化测试正在验证可访问性,但 isAccessibilityElement 返回 false。我检查了情节提要文件,并且可访问性已标记了复选框。我在调试应用程序时检查了视图层次结构,它还报告可访问性已启用。树中所有返回到视图控制器的包含视图都禁用了可访问性。什么可能导致代码中返回的内容与应用程序中实际返回的内容之间存在差异?

【问题讨论】:

为什么需要检查isAccessibilityElement 的值? 我实际上需要检查isHittable,但如果视图在情节提要中未标记启用可访问性复选框,isHittable 似乎返回 false。我想在exists 上实现一个后备,以防我不能依赖isHittable,所以我需要检查元素是否在代码中检查了它的复选框,这应该是isAccessibilityElement 标志 isHittable 为 false,因为 UILabel 无法被命中,它与 isAccessibilityElement 无关。 这不是真的,因为如果我选中故事板中的可访问性复选框,isHittable 返回真。 UIImageView 也是如此 您是从组件创建故事板还是使用父类,如果是,那么它应该在该级别启用。我有类似的问题 【参考方案1】:

我已针对此问题提交 Apple 反馈请求,如果收到回复,我将更新此答案

编辑 - Apple 很友好地告诉我这“按预期工作”,没有进一步解释

【讨论】:

以上是关于XCUIElement isAccessibilityElement 返回为 false,即使该元素在视图层次结构中报告为 Is Accessibility Element的主要内容,如果未能解决你的问题,请参考以下文章

如何查看 XCUIElement 树?

XCUIElement 唯一标识符

如何获取 XCUIElement 的值?

iOS 从 XCUIElement 获取 UI 元素

XCUIElement 存在,但不可命中

当它不是可访问性元素时,是不是可以通过其 `accessibilityId` 获取`XCUIElement`?