AppleScript:单击特定的菜单栏项

时间:2019-04-02 07:44:34

标签: applescript

我为称为的应用程序编写了一个applescript。但是我有一个例外的问题:(

对不起,但是“发布图片至少需要10个声誉。”

我的问题在哪里?

tell application "System Events" to tell process "EndpointConnect"
    tell menu bar item 1 of menu bar 2
        click
        click menu item "Disconnect" of menu 1
    end tell
end tell

实际结果是:

error "System Events got an error: Can’t get menu 1 of menu bar item 1 of menu bar 2 of process \"EndpointConnect\". Invalid index." number -1719 from menu 1 of menu bar item 1 of menu bar 2 of process "EndpointConnect"

1 个答案:

答案 0 :(得分:0)

按原样运行的脚本在尚不存在的对象上执行click。基本上,您需要在两个delay命令之间使用click,以使系统有时间实例化菜单及其菜单项。

这是我无法为您测试的修改,但我希望它能起作用:

tell application "System Events" to tell ¬
    process "EndpointConnect" to tell ¬
    menu bar 2 to tell ¬
    menu bar item 1

    if not (exists) then return null

    click

    tell (a reference to menu item "Disconnect" of menu 1)
        repeat until it exists
            delay 0.5
        end repeat
        click
    end tell
end tell

但是,由于某些未知的原因,您可能会在菜单外观和单击菜单项之间得到5秒钟的烦人延迟。它是众所周知的/有文件记录的,经常被抱怨,还有一个长达多年未解决的问题,也许永远不会解决。