gpt4 book ai didi

macos - 使用 AppleScript 如何单击没有名称/标题的窗口中对话框中的按钮?

转载 作者:行者123 更新时间:2023-12-02 10:55:12 26 4
gpt4 key购买 nike

我正在尝试编写一个 AppleScript,它将清空 Mac 版 Twitter 的缓存,然后重新启动应用程序。我遇到的问题是确认对话框没有名称(标题栏为空),因此我不知道如何在没有上下文的情况下定位按钮。这是我到目前为止所拥有的:

tell application "Twitter"
activate
end tell
tell application "System Events"
tell process "Twitter"
tell menu bar 1
tell menu bar item "Twitter"
tell menu "Twitter"
click menu item "Empty Cache"
end tell
end tell
end tell
end tell
end tell
tell application "System Events"
click button "Empty Cache" of window "Empty Cache?"
end tell
tell application "Twitter"
quit
end tell
tell application "Twitter"
activate
end tell

最佳答案

有多种方法可以引用对象层次结构中的对象:名称只是一种方法(请参阅 AppleScript Language Guide: Reference Forms 。您的脚本已使用其他方法之一: Index

tell menu bar 1

这是通过索引引用菜单栏:(与许多编程语言不同,AppleScript 中列表中的项目索引从 1 开始,而不是从 0 开始)。下面的脚本应该可以实现您想要的:

tell application "Twitter" to activate

tell application "System Events"
tell application process "Twitter"
click menu item "Empty Cache" of menu "Twitter" of menu bar item "Twitter" of menu bar 1
delay 1
--click button "Empty Cache" of front window
click button "Empty Cache" of window 1
end tell
end tell

tell application "Twitter"
quit
delay 1
activate
end tell

您或许可以注释掉delay 1行;我添加这些是为了减慢该过程,以便您可以更容易地看到发生了什么。

当尝试弄清楚如何通过 AppleScript“获取”应用程序中的对象时,我经常发现使用 AppleScript 编辑器创建小查询脚本以尝试发现有关应用程序的更多信息很有帮助。例如,在 Twitter 中,我选择 Twitter > 清空缓存以打开清空缓存窗口。然后我运行了以下脚本:

tell application "Twitter"
set theWindows to every window -- get a list of windows
(* turns out there's only one window listed,
so get the first item in the list *)
set theWindow to first item of theWindows
-- get the properties of the window
properties of theWindow
end tell

该脚本返回以下结果:

{closeable:true, zoomed:false, class:window, index:1,
visible:true, name:missing value, miniaturizable:true,
id:28551, miniaturized:false, resizable:true,
bounds:{-618, 76, -128, 756}, zoomable:true}

关于macos - 使用 AppleScript 如何单击没有名称/标题的窗口中对话框中的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7355763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com