Applescript: нажмите на конкретный пункт меню - PullRequest
0 голосов
/ 02 апреля 2019

Я делаю яблочный скрипт для приложения под названием.Но у меня есть проблема с исключением: (

Извините, но "Вам нужно как минимум 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 голосов
/ 02 апреля 2019

Скрипт в его нынешнем виде выполняет 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-секундную задержку между появлением меню и щелчком по пункту меню. Она хорошо известна / документально оформлена, на нее часто жалуются, и проблема в течение многих лет не была устранена и, вероятно, никогда не будет устранена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...