Выбор кнопок всплывающего меню в AppleScript

Я хочу автоматизировать щелчок по определенному элементу всплывающего меню. Например, я хочу изменить значение «Звук получения сообщения» на что-то другое. Как я могу сделать это с помощью AppleScript? И как я могу сделать это с другими всплывающими меню в AppleScript?

(Чтобы открыть меню настроек iMessage, показанное на изображении, введите CMD COMMA после открытия iMessage)

Примечание. Я успешно сделал этот Automator, я просто хочу сделать это в applescript.

введите здесь описание изображения


person Entitize    schedule 11.04.2016    source источник


Ответы (1)


Это называется сценариями GUI. Вы должны идентифицировать ссылку на элемент (ы) пользовательского интерфейса.

Скрипты GUI сильно зависят от версии системы. Если обновление изменит структуру пользовательского интерфейса, скрипт будет тормозить.

Это выбирает звук «Попкорн» во всплывающем меню звука. Это для Эль Капитана. В системах ‹ 10.11 элементы пользовательского интерфейса могут быть другими, а имя процесса может быть «iChat».

tell application "System Events"
    tell process "Messages"
        set frontmost to true
        if not (exists (1st window whose value of attribute "AXIdentifier" is "MessagesPreferencesWindow")) then
            keystroke "," using command down
            repeat until exists (1st window whose value of attribute "AXIdentifier" is "MessagesPreferencesWindow")
                delay 0.1
            end repeat
        end if
        tell (1st window whose value of attribute "AXIdentifier" is "MessagesPreferencesWindow")
            tell pop up button 4 of group 1
                click
                delay 0.2
                click menu item "Popcorn" of menu 1
            end tell
        end tell
    end tell
end tell
person vadian    schedule 11.04.2016
comment
Как вы определяете номера меню/кнопок/групп? - person spuder; 14.01.2019