GUI Scripting Examples
This section describes a couple of examples of GUI scripting from my own life.
Our first example will be to toggle File Sharing on or off. This is something I need to do quite often, and System Preferences isn’t sufficiently scriptable to automate it. I have to open System Preferences, go the right pane, and press all the right buttons, every time; this, as they say, gets old real fast. But AppleScript can automate it for me, thanks to GUI scripting.
System Preferences is sufficiently scriptable to
get us to the Sharing pane, so let’s consider that
problem solved. To write our script, then, the first step is to open
the Sharing pane manually and explore it in terms of its UI element objects.
For example, we’re initially interested in the Personal File Sharing row of the scrolling list in the Services tab. UI Element Inspector describes it this way:
<AXApplication: "System Preferences">
<AXWindow: "Sharing">
<AXTabGroup>
<AXScrollArea>
<AXTable>
<AXRow>
<AXTextField>
Attributes:
AXRole: "AXTextField"
AXRoleDescription: "text field"
AXHelp: "(null)"
AXValue (W): "Personal File Sharing"
AXEnabled: "1"
AXFocused: "0"
AXParent: "<AXRow>"
AXWindow: "<AXWindow: "Sharing">"
AXPosition: "x=228 y=341"
AXSize: "w=195 h=18"
AXSelectedText: "(null)"
AXSelectedTextRange: "(null)"
Actions:
AXConfirm - AXConfirmPreFab UI Browser displays the element hierarchy more graphically, using AppleScript terminology; Figure 22-1 shows the result.
Figure 22-1. UI Browser describes a window ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access