假设我想使用 AppleScript 单击窗口内某处出现的按钮。click button
可以,但您必须知道您想按哪个按钮。
例如:扫描有点麻烦,因为你总是要等待扫描仪完成,然后切换到 Image Capture.app,然后单击扫描再次。
所以,我想自动点击此处的按钮……
好吧,我认为这相对容易,但一开始我只能做到这些:
tell application "System Events"
tell process "Image Capture"
click button "Scan" of window "Image Capture"
end tell
end tell
当然,按钮埋得比这更深(即在某个拆分组中)。
随着可访问性检查器我知道它在哪里,但我真的必须沿着 UI 元素树向下查找按钮吗?有没有什么捷径?如果没有,我遗漏了什么click button "Scan" of window "Image Capture"
?
更一般的情况:在 UI 元素层次结构中哪里可以找到按钮?
答案1
如果按钮不可直接使用,您可能需要猜测。
High Sierra 中有效的是:
tell application "System Events"
tell process "Image Capture"
click button "Scan" of group 2 of splitter group 1 of window "Image Capture"
end tell
end tell
在旧版 macOS 上,group 1
可能必须使用。
另一个解决方法是激活窗口并按空格键:
tell application "Image Capture"
activate
tell application "System Events" to key code 49
end tell
您实际上可以尝试通过运行以下命令来关闭它:
UI elements of window 1
UI elements of splitter group 1 of window 1
UI elements of group 1 of splitter group 1 of window 1
或者,正如@Lri 在评论中所说:
properties of UI elements of window 1
properties of UI elements of UI elements of window 1
这将向您显示所包含元素的列表,您可以从中猜测。
答案2
这对我有用:
entire contents of window 1
当这个出现问题时:
UI elements of window 1
答案3
在 MacOS High Sierra 10.13.6 和 Image Capture 7.0 中,上述答案经过以下轻微修改后生效:
tell application "System Events"
tell process "Image Capture"
click button "Scan" of group 2 of splitter group 1 of window "Image Capture"
end tell
end tell