You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SwiftUI的Button标签中设置唯一的accessibilityIdentifier

解决SwiftUI Button标签内多accessibilityIdentifier失效问题

SwiftUI的Button默认会把整个label内容合并成单个可访问元素,导致内部子元素的accessibilityIdentifier被隐藏,所以你之前的设置在Button里失效了。要实现需求,只需要给Button本身添加.accessibilityElement(children: .contain),让它保留子元素的可访问性属性即可。

调整后的代码示例:

Button {
    // Button implementation
} label: {
    ZStack {
        HStack {
            Text("Text")
                .accessibilityIdentifier("Textbox")
            Image(.rightArrow)
                .accessibilityIdentifier("RightArrow") // 给图片添加唯一标识
        }
        .accessibilityIdentifier("Container")
    }
}
.accessibilityElement(children: .contain)
// 可选:给Button本身也设置标识,如果需要的话
// .accessibilityIdentifier("MainActionButton")

这样设置后,Maestro就能识别到Container、Textbox、RightArrow这些独立的标识了。原理是.accessibilityElement(children: .contain)告诉系统不要合并Button的子元素可访问性信息,让每个子元素的标识都能被外部工具检测到。

内容的提问来源于stack exchange,提问作者Mak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:56:02