У меня есть приложение под названием Fenêtre, при поиске имени процесса с помощью команды top оно дает имя Fene?~Btre H.
top
Fene?~Btre H
Я хочу щелкнуть элемент с именем «a.py» под его элементом менюкак показано на рисунке.
Моя попытка:
tell application "System Events" to tell process "Fenêtre" tell menu bar item 1 of menu bar 1 click click menu item "Show all" of menu 1 end tell end tell
Ошибка:
$ osascript a.applescript a.applescript:121:157: execution error: System Events got an error: Can’t get menu item "Show all" of menu 1 of menu bar item 1 of menu bar 1 of process "Fenêtre". (-1728)
Обратите внимание, что когда я запускаю только первую и последнюю строку попытки1, он работает хорошо, когда я добавляю средние строки, он не запускается.
ignoring application responses tell application "System Events" to tell process "Fenêtre" click menu bar item 1 of menu bar 2 end tell end ignoring do shell script "killall System\\ Events" delay 0.1 tell application "System Events" to tell process "Fenêtre" tell menu bar item 1 of menu bar 2 click menu item "a.py" of menu 1 -- click menu item 1 of menu 1 -- another try end tell end tell
tell application "System Events" to tell process "Fenêtre" get entire contents of menu bar 2 end tell
Это дает:
{menu bar item 1 of menu bar 2 of application process "Fenêtre" of application "System Events"}
Ссылки: Applescript: при нажатии МенюЭлемент панели с помощью графического сценария опция строки меню щелчка мышью * яблочный скрипт https://superuser.com/questions/587815/can-applescript-osascript-be-used-to-click-menu-extra-menu-items Applescript для отображения элементов панели меню Apple Является ли AppleScript UI Scripting очень медленным в целом, или это мой сценарий, или что-то еще? Нажатие элемента строки меню приложения с помощью AppleScript
Большое спасибо.
Используйте идентификатор пакета вместо имени приложения:
tell application "System Events" tell (first application process whose bundle identifier is "BUNDLE_IDENTIFIER_HERE") tell menu bar item 1 of menu bar 1 click click menu item "Show all" of menu 1 end tell end tell end tell