如何使用AppleScript向Safari当前网页发送按键以定位谷歌搜索首个链接
问题原因
你代码里给Tab键加了using control down修饰符,Control+Tab是Safari默认的标签页切换快捷键,所以自然只会切换已打开的标签页,不会给当前页面内容发送普通Tab按键。
实现方案
这里提供两种可选方案:
方案1:修正模拟按键实现
先确保系统「系统设置→键盘→导航」里的全键盘控制已开启,才能用Tab选中页面内所有交互元素。修正后的代码如下:
tell application "Safari" activate -- 确保焦点从地址栏切换到页面内容区域 do JavaScript "document.activeElement.blur()" in document 1 delay 0.1 end tell tell application "System Events" -- 去掉control修饰符,发送普通Tab按键 repeat 10 times -- 可根据实际页面布局调整重复次数 keystroke tab delay 0.05 -- 添加小延迟避免按键响应丢失 end repeat end tell
该方案依赖谷歌搜索页面的元素排布顺序,页面结构更新后可能失效,推荐优先用方案2
方案2:直接执行JS定位第一个搜索链接(更稳定)
不需要模拟按键,直接通过JS匹配谷歌搜索的第一个非广告自然结果链接并自动聚焦,稳定性更高:
tell application "Safari" activate tell document 1 -- 匹配第一个自然搜索结果链接并触发聚焦 do JavaScript "document.querySelector('#search .g a')?.focus()" end tell end tell
执行完成后焦点会直接定位到第一个搜索结果链接,按回车即可直接跳转。
内容的提问来源于stack exchange,提问作者StevieD
相关产品推荐
相关产品推荐

