如果存在对话框,请使用 Applescript 单击某个按钮
If a dialog exists, click certain button with Applescript
我一直在尝试弄清楚如何有条件地单击弹出的对话框。我有一个脚本可以将一堆播放列表复制到 Apple Music 中的另一个播放列表,但有时这些播放列表可能有重复,我想跳过。问题是,它不会每次都发生,只有在您已经复制了一些之后,它才会开始遇到那些重复项。我试过按 return 关闭对话框,但有时似乎会错过。
这是我希望实现的逻辑,但我似乎无法通过它来识别是否存在对话框。
if (dialog = true) then
click button "Skip" of window "Music"
end if
更新:我能够采用@wch1zpink 回答中的方法来找到解决方案。我 运行 遇到的问题之一是在使用 UI 浏览器探索时,有时弹出窗口会是 window 1,有时会是 window 2,所以它会失败当它不符合标准时。所以我为这两个实例都设置了条件,它现在似乎可以工作了。
tell application "System Events"
if exists of UI element "Skip" of window 1 of application process "Music" then
click UI element "Skip" of window 1 of application process "Music"
else if exists of UI element "Skip" of window 2 of application process "Music" then
click UI element "Skip" of window 2 of application process "Music"
end if
end tell
这是我不久前为我自己的一些项目提出的解决方案。它将需要将以下 AppleScript 代码保存为保持打开的应用程序。它的功能是在使用 Music.app 时处理所有的“点击跳过按钮”。为此,我将其保存为一个应用程序,并在脚本编辑器中将其命名为“Click Skip.app”。
完成保存后“单击 Skip.app”,直接转到系统偏好设置/安全和 Privacy/Privacy 并将其添加到允许控制您的计算机的应用程序列表中
on idle
set musicRunning to application "Music" is running
if not musicRunning then quit
tell application "System Events"
if exists of UI element "Skip" of window 1 of application process "Music" then
click UI element "Skip" of window 1 of application process "Music"
end if
end tell
return 0.1 -- in seconds
end idle
on quit
-- Executed when the script quits
continue quit -- allows the script to quit
end quit
下一步:使用以下 AppleScript 代码并将您的 Music.app 命令插入到新的脚本编辑器文档中。这将是您的主要脚本。它将启动您的“Click Skip.app”,然后是您的音乐代码,然后在您的脚本完成其 运行.
时退出“Click Skip.app”
tell application "Music" to activate
tell application "Click Skip" to activate
tell application "Music"
-- Insert Your Code For
-- Copying Music To Playlists
end tell
tell application "Click Skip" to quit
我一直在尝试弄清楚如何有条件地单击弹出的对话框。我有一个脚本可以将一堆播放列表复制到 Apple Music 中的另一个播放列表,但有时这些播放列表可能有重复,我想跳过。问题是,它不会每次都发生,只有在您已经复制了一些之后,它才会开始遇到那些重复项。我试过按 return 关闭对话框,但有时似乎会错过。
这是我希望实现的逻辑,但我似乎无法通过它来识别是否存在对话框。
if (dialog = true) then
click button "Skip" of window "Music"
end if
更新:我能够采用@wch1zpink 回答中的方法来找到解决方案。我 运行 遇到的问题之一是在使用 UI 浏览器探索时,有时弹出窗口会是 window 1,有时会是 window 2,所以它会失败当它不符合标准时。所以我为这两个实例都设置了条件,它现在似乎可以工作了。
tell application "System Events"
if exists of UI element "Skip" of window 1 of application process "Music" then
click UI element "Skip" of window 1 of application process "Music"
else if exists of UI element "Skip" of window 2 of application process "Music" then
click UI element "Skip" of window 2 of application process "Music"
end if
end tell
这是我不久前为我自己的一些项目提出的解决方案。它将需要将以下 AppleScript 代码保存为保持打开的应用程序。它的功能是在使用 Music.app 时处理所有的“点击跳过按钮”。为此,我将其保存为一个应用程序,并在脚本编辑器中将其命名为“Click Skip.app”。
完成保存后“单击 Skip.app”,直接转到系统偏好设置/安全和 Privacy/Privacy 并将其添加到允许控制您的计算机的应用程序列表中
on idle
set musicRunning to application "Music" is running
if not musicRunning then quit
tell application "System Events"
if exists of UI element "Skip" of window 1 of application process "Music" then
click UI element "Skip" of window 1 of application process "Music"
end if
end tell
return 0.1 -- in seconds
end idle
on quit
-- Executed when the script quits
continue quit -- allows the script to quit
end quit
下一步:使用以下 AppleScript 代码并将您的 Music.app 命令插入到新的脚本编辑器文档中。这将是您的主要脚本。它将启动您的“Click Skip.app”,然后是您的音乐代码,然后在您的脚本完成其 运行.
时退出“Click Skip.app”tell application "Music" to activate
tell application "Click Skip" to activate
tell application "Music"
-- Insert Your Code For
-- Copying Music To Playlists
end tell
tell application "Click Skip" to quit