Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Apple Script funktioniert plötzlich nicht mehr - "Ungültiger Index"

Apple Script funktioniert plötzlich nicht mehr - "Ungültiger Index"

stfnr07.03.2414:50
Hallo zusammen,
Ich habe eine Automator-App erstellt, die ein AppleScript ausführt, um etwas in den "Systemeinstellungen" umzuschalten (an/aus Toggle).
Die Absicht ist, die Einstellung "Beim Programmwechsel Space auswählen, der geöffnete Fenster des Programms enthält" unter dem Menüpunkt "Schreibtisch & Dock" aus- und dann wieder einzuschalten (also den blauen Schieber einmal hin und her).



Mein AppleScript:

on run {}
repeat 2 times
tell application "System Settings" to activate
tell application "System Events"
tell process "System Settings"
click menu item "Schreibtisch & Dock" of menu "Darstellung" of menu bar 1
delay 2
tell window "Schreibtisch & Dock"
click checkbox "Beim Programmwechsel Space auswählen, der geöffnete Fenster des Programms enthält" of group 9 of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1
end tell
end tell
end tell
end repeat
end run

Das Script lief bisher tadellos; nun plötzlich erscheint immer wieder eine Fehlermeldung, dass ein Syntaxfehler vorliegt ("Ungültiger Index").



Ich habe Screenshots angehängt, um zu verdeutlichen, was ich meine.

Kann mir jemand sagen, warum es bisher lief, aber plötzlich nicht mehr? Ich kann nicht genau sagen, ob ich in der Zwischenzeit ein MacOS-Update vorgenommen habe; so lange benutze ich das AppleScript nun auch wieder nicht. Erst seit wenigen Wochen.

MacOS Version: Sonoma 14.3.1
Macbook Pro 16" 2021 (Apple M1 Pro)

Einen konkreten Hinweis, woran es bei mir liegt bzw. was genau ich ändern müsste, konnte ich trotz Recherche nicht finden. Daher erstelle ich jetzt den eigenen Thread.
Vielen Dank schon mal!
0

Kommentare

ttwm07.03.2415:43
stfnr
click checkbox "Beim Programmwechsel Space auswählen, der geöffnete Fenster des Programms enthält" of group 9 of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1
Ist denn der gewünschte Eintrag noch in "group 9" oder - bedingt durch ein Update - woanders hingerutscht?
Ich kann leider nur Ventura gegentesten, und da ist er in Gruppe 8. Bei Angabe von "9" bekomme ich den gleichen Index-Fehler ausgegeben.
0
stfnr07.03.2417:24
ttwm
stfnr
click checkbox "Beim Programmwechsel Space auswählen, der geöffnete Fenster des Programms enthält" of group 9 of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1
Ist denn der gewünschte Eintrag noch in "group 9" oder - bedingt durch ein Update - woanders hingerutscht?
Ich kann leider nur Ventura gegentesten, und da ist er in Gruppe 8. Bei Angabe von "9" bekomme ich den gleichen Index-Fehler ausgegeben.

...wenn ich das wüsste. Ich selber weiß nicht, wie ich die genaue Bezeichnung von diesem Eintrag herausfinde. Ich habe jetzt mal "group 1" bis "group 15" alles durchprobiert, leider ohne Erfolg.
Was kann ich tun, um die (neue??) Bezeichnung von "of group 9 of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1" herauszufinden?
Auf jeden Fall schon mal Danke für die schnelle Rückmeldung!
0
chb07.03.2417:40
Hab die Hierarchie einfach mit dieser Anleitung rausbekommen können:

1. Einen Skript-Editor öffnen, daneben das Fenster mit den Systemeinstellungen.

2. Die Tastenkombination für einen Screenshot drücken (cmd+shift+4) und am Mauszeiger die Koordinaten des gewünschten Buttons am Bildschirm ablesen.

3. Im Skripteditor folgendes Skript mit den richtigen Koordinaten ausführen:
tell application "System Events" to click at {1666, 797}

4. Im Ausgabeteil erscheint der Pfad des geklickten Buttons.

5. Dein Skript abändern und in der Zeile mit "click checkbox ...." alles mit dem richtigen Pfad ersetzen

+2
NFK07.03.2417:56
delay 2
tell window "Schreibtisch & Dock"

Ich ignoriere mal die Fehlermeldung und erinnere mich an ein eigenes Script, das nicht mehr lief. Der Fehler lag daran, dass das Fenster noch nicht geöffnet war, als das Skript bereits darauf zugreifen wollte. Ein delay bringt Abhilfe und ist hier bereits eingebaut. Aber vielleicht bewirken veränderte Prozesse/Umstände auf dem Rechner, dass diese 2 Sekunden nicht mehr reichen. Einfach mal probieren, was passiert, wenn stattdessen delay 5 dort steht...
0
stfnr07.03.2418:45
chb
Hab die Hierarchie einfach mit dieser Anleitung rausbekommen können: ...

Klasse! Das funktioniert prima, so hat es wieder hingehauen. Herzlichen Dank dafür!

Und auch ein großes Dankeschön für die anderen Antworten! Diese Hilfe und Unterstützung ist echt hammer. Freut mich sehr.
+2

Kommentieren

Sie müssen sich einloggen, um sich an einer Diskussion beteiligen zu können.