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

如何根据无障碍标识符与标签定位并交互指定按钮?

解决无障碍按钮定位与交互问题

从错误输出可知,当前存在两个标识符为car的按钮:

Button, identifier: 'car', label: 'add'
Button, identifier: 'car', label: 'minus-grey', Disabled

你之前的方法失败原因主要是:

  • children.buttons["add"]是按**标识符(identifier)**匹配,而非标签(label),但目标按钮的标识符是car,所以无法命中;
  • 单纯的label == "add"谓词没有结合标识符条件,无法精准锁定目标元素。

以下是几种可行的交互方案:

方案1:复合谓词精准匹配标识符+标签

同时指定标识符和标签两个条件,确保定位到唯一目标:

let predicate = NSPredicate(format: "identifier == %@ AND label == %@", "car", "add")
if let addButton = children.buttons.element(matching: predicate) {
    addButton.tap()
}

方案2:按标识符过滤后选可用按钮

利用另一个按钮处于禁用状态的特性,先筛选标识符为car的按钮,再取其中启用的那个:

let carButtons = children.buttons.matching(identifier: "car")
if let addButton = carButtons.element(matching: .isEnabled) {
    addButton.tap()
}

方案3:通过索引定位(仅临时应急用)

如果UI结构固定,确定目标按钮是第一个标识符为car的元素,可直接按索引获取:

let carButtons = children.buttons.matching(identifier: "car")
if carButtons.count > 0 {
    carButtons.element(boundBy: 0).tap()
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 14:17:40