GUI Scripting Examples

GUI scripting is something of an art, and needs either a big treatment providing the fruits of plentiful experience or a small treatment that shows a few useful examples and leaves you to explore further on your own. I've opted here for the latter; I'll just give a few practical examples of GUI scripting, without further elaboration.

First I'll show how to toggle File Sharing on and off through the System Preferences application. System Preferences itself is not particularly scriptable; all you can really do is go to the desired preference pane. GUI scripting does the rest:

tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preferences.sharing"
end tell
tell application "System Events"
    tell application process "System Preferences"
        tell tab group 1 of window "Sharing"
            click radio button "Services"
            select row 1 of table 1 of scroll area 1
            click button 1
        end tell
    end tell
end tell

Now let's work around the fact that TextEdit doesn't let you learn what text is selected. We can use GUI scripting to learn both what text is selected and where the selection is:

tell application "TextEdit" to activate
-- front window contains "this is a test of GUI scripting"; "test" is selected
tell application "System Events"
    tell application process "TextEdit"
        tell window 1
            tell text area 1 of scroll area 1
                get value of attribute "AXSelectedText" -- "test"
                get value of attribute "AXSelectedTextRange" -- {11,14}
            end tell
        end tell
    end tell
end tell

In this ...

Get AppleScript: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.