如何通过AppleScript点击FaceTime共享表单的「复制链接」按钮?
AppleScript实现FaceTime链接创建并复制的问题解决
问题描述
尝试编写AppleScript代码创建FaceTime链接并复制到剪贴板,已成功点击「创建链接」按钮,但无法触发共享表单中的「复制链接」操作。刚接触AppleScript,缺乏相关文档参考。
当前代码
tell application "FaceTime" to activate tell application "System Events" tell process "FaceTime" click button "Create Link" of window 1 end tell delay 2 tell process "ShareSheetUI (FaceTime)" pick menu item "Copy Link" of menu 1 end tell end tell
报错信息
Can’t get menu 1 of process "ShareSheetUI". Invalid index.
已尝试修改菜单编号、将menu改为window,均未解决问题。
解决方案
共享表单(ShareSheet)的UI结构并非独立的ShareSheetUI进程,而是属于FaceTime窗口的sheet元素,需要调整定位方式:
方法一:直接点击「复制链接」按钮
如果共享表单中「复制链接」是按钮形式,使用以下代码:
tell application "FaceTime" to activate tell application "System Events" tell process "FaceTime" click button "Create Link" of window 1 -- 等待共享表单加载完成,可根据系统速度调整延迟 delay 1.5 -- 定位共享表单内的「复制链接」按钮 click button "Copy Link" of sheet 1 of window 1 end tell end tell
方法二:通过菜单结构选择
如果「复制链接」属于菜单选项,使用以下代码:
tell application "FaceTime" to activate tell application "System Events" tell process "FaceTime" click button "Create Link" of window 1 delay 1.5 -- 先触发菜单,再选择「复制链接」 click menu item "Copy Link" of menu of button 1 of sheet 1 of window 1 end tell end tell
辅助定位技巧
若仍无法找到元素,可执行以下代码查看共享表单的所有UI元素,明确目标元素的层级:
tell application "System Events" tell process "FaceTime" -- 弹出共享表单后执行此代码,查看元素结构 get UI elements of sheet 1 of window 1 end tell end tell
内容的提问来源于stack exchange,提问作者Jakob Steele
相关产品推荐
相关产品推荐

