#applescript
#applescript
Вопрос:
Я создаю applescript для вызываемого приложения. Но у меня проблема с исключением: (
Извините, но «Для публикации изображений вам нужна репутация не менее 10».
- https://i.ibb.co/ZMgZ5Tb/Screen-Shot-2019-04-02-at-10-22-29.png
- https://i.ibb.co/6sGyNjx/Screen-Shot-2019-04-02-at-10-22-41.png
В чем моя проблема?
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:
Скрипт в его нынешнем виде выполняет 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-секундную задержку между появлением меню и щелчком по пункту меню. Это хорошо известная / документированная проблема, на которую часто жаловались, и на протяжении многих лет она не была исправлена и, вероятно, никогда не будет.