如何通过AppleScript获取HTML按钮的disabled状态(true或false)
问题原因
你原来的写法存在2个核心问题:
- 没有在支持JS执行的浏览器作用域下运行代码,该命令必须绑定Safari、Chrome这类支持AppleScript调度的浏览器实例和对应标签页
- 缺失必要的浏览器权限配置,且原有代码的JS字符串未正确闭合
正确实现方案
前置配置(Safari环境)
先打开Safari偏好设置→「高级」选项卡,勾选底部「在菜单栏中显示开发菜单」,随后进入「开发」菜单,勾选「允许Apple事件中的JavaScript」。
Safari 环境代码
tell application "Safari" -- 直接获取当前第一个文档中按钮的disabled状态,返回布尔值true/false set buttonStatus to do JavaScript "document.getElementById('view-more').disabled" in document 1 end tell
Chrome 环境代码
tell application "Google Chrome" -- 操作当前窗口激活的标签页执行JS获取状态 set buttonStatus to execute front window's active tab javascript "document.getElementById('view-more').disabled" end tell
兼容优化
如果存在按钮未加载完成、找不到元素的场景,可以修改JS代码兼容异常情况,避免AppleScript报错:
// 找不到元素时默认返回false,可根据需求调整默认值 document.getElementById('view-more')?.disabled ?? false
内容的提问来源于stack exchange,提问作者Wayland Chin
相关产品推荐
相关产品推荐

