如何以AppleScript编程方式按工具栏按钮?

时间:2010-06-11 11:19:10

标签: macos button applescript toolbar

我希望这不是太明显,但我想通过AppleScript按下应用程序中的一个工具栏按钮。

背景:该按钮没有任何菜单项或键盘快捷键。因此,我无法通过任何这些方法激活它;我需要找到一种实际上“按下”按钮的AppleScript方式。

3 个答案:

答案 0 :(得分:3)

我将对@hced所说的内容进行一些扩展。

我同意click button 3 of tool bar 1 of window 1在许多情况下有效。然而,从OS到OS,thic可能是一个移动的目标。我的例子是iTunes。在iTunes 10.5.8中,播放按钮为17,其中10.7.5为25。但是,在这两种情况下,它都被称为“AirPlay”!

所以我建议使用开发人员工具包,并从Apple获取此代码: http://developer.apple.com/library/mac/#samplecode/UIElementInspector/Introduction/Intro.html

运行应用程序,无论您将鼠标移到哪里,都可以获得在AppleScripts中使用它所需的所有信息:

click (every button whose description is "AirPlay") of window "iTunes" of application process "iTunes"

在这种情况下,只有一个按钮具有此描述,但您可以使用该工具来发现是否是这种情况。如果是这样,请限制范围!

希望这有帮助!! 博

答案 1 :(得分:2)

啊,自己也弄明白了。似乎我在这里进行自我评论狂欢。

此示例适用于我,通过其描述属性引用特定的工具栏按钮:

tell application "System Events"
    tell process "OmniFocus"
        click (every button whose description is "Contexts") of tool bar 1 of window 1
    end tell
end tell

我会留意任何评论员提出关于引用每个按钮的意见,其描述为“上下文”(根据我的例子),以表达下面的内容。但我认为不能有多个具有相同描述的按钮,对吧?

答案 2 :(得分:1)

好的,一旦我发现了,这比我想象的要简单。 (谷歌搜索它并没有给予太多帮助,但是一个名为Prefab UI Browser的应用程序找到了如何完成的技巧)。

示例:

tell application "System Events"
    tell process "OmniFocus"
        click button 3 of tool bar 1 of window 1
    end tell
end tell

我有一个后续问题,但是:

如何按名称/描述引用工具栏按钮?我知道按钮的描述属性值为“Contexts”。但同样,我如何在点击声明中引用它?