-- Kill System Preferences first if already open | |
if application "System Preferences" is running then | |
tell application "System Events" | |
set theID to unix id of processes whose name is "System Preferences" | |
try | |
do shell script "kill -9 " & theID | |
delay 0.1 | |
end try | |
end tell | |
end if | |
try | |
tell application "System Preferences" | |
activate | |
set the current pane to pane id "com.apple.preferences.AppleIDPrefPane" | |
tell application "System Events" | |
repeat until window "Apple ID" of application process "System Preferences" exists | |
end repeat | |
set theWindow to window "Apple ID" of application process "System Preferences" | |
-- Select iCloud | |
repeat until row 6 of table 1 of scroll area 1 of theWindow exists | |
end repeat | |
select row 6 of table 1 of scroll area 1 of theWindow | |
-- Right part of the window | |
set rowDetails to group 1 of theWindow | |
repeat until row 4 of table 1 of scroll area 1 of rowDetails | |
end repeat | |
-- Select the "Hide my Email" row | |
set hideMyEmailRow to row 4 of table 1 of scroll area 1 of rowDetails | |
repeat until button of UI element 1 of hideMyEmailRow exists | |
end repeat | |
click button of UI element 1 of hideMyEmailRow | |
log "Clicked at: " & (value of static text 1 of UI element 1 of hideMyEmailRow) | |
-- New opened window, which is a sheet | |
set hideMyEmailSheet to sheet 1 of theWindow | |
-- Wait for the busy indicator to appear | |
repeat until busy indicator 1 of hideMyEmailSheet exists | |
end repeat | |
-- Then wait for it to disappear | |
repeat until (not (busy indicator 1 of hideMyEmailSheet exists)) | |
end repeat | |
set sheet1 to sheet 1 of theWindow | |
set addButton to button 1 of group 3 of group 1 of group 1 of UI element 1 of scroll area 1 of sheet1 | |
click addButton | |
end tell | |
log "End" | |
end tell | |
on error errMsg | |
log "ERR: " & errMsg | |
end try |
Seems to not work on macOS Monterey 12.6, failing on line 54:
Clicked at: Hide My Email ERR: System Events got an error: Can’t get group 1 of UI element 1 of sheet 1 of window "Apple ID" of application process "System Preferences". Invalid index.
Is there an Xcode tool I can use to find the group / sheet / button numbers for a window?
If it's helpful, this is the window as it appears to me:
On my Mac (Monterey 12.6) the first group instance requires amending from "3" to "1"
Replace line 54...
set addButton to button 1 of group 3 of group 1 of group 1 of UI element 1 of scroll area 1 of sheet1
with the following line...
set addButton to button 1 of group 1 of group 1 of group 1 of UI element 1 of scroll area 1 of sheet1
@DeepHeat01 that did it, thanks!
Oops, I didn't see those notifications. Sorry!
I will maybe try to make something more like an app, since AppleScript isn't very practical for this usage. But Apple is limiting almost everything on this side unfortunately
Seems to not work on macOS Monterey 12.6, failing on line 54:
Is there an Xcode tool I can use to find the group / sheet / button numbers for a window?
If it's helpful, this is the window as it appears to me: