Ich versuche, über Applescript mit einem Druckdialog zu interagieren.
Ich möchte emulieren, dass der Benutzer einen Wert in einem bestimmten Dropdown-Menü festlegt.
Angenommen, ich habe:
tell application "System Events"
tell process "Preview"
set value of pop up button XXX to YYY
end tell
end tell
Woher soll ich den Namen XXX kennen? Wie würde ich zum Beispiel zwischen den Dropdowns "Drucker" und "Voreinstellungen" unterscheiden?
Ich habe den Eingabehilfen-Inspektor geöffnet, kann jedoch anhand der dort angezeigten Informationen keinen Verweis auf den Namen oder eine andere eindeutige Kennung für die angegebene Dropdown-Liste finden.
Ich habe viele Leute gesehen, die Zahlen verwendet haben, um auf die verschiedenen Dropdowns zu verweisen, aber ich bin mir nicht sicher, ob dies eine gute Praxis ist. Was passiert, wenn Apple beschließt, die Reihenfolge von zwei Dropdowns irgendwann auszutauschen?
Jede Hilfe wäre dankbar.
UPDATE :
Unter Verwendung von 10.6.8 und Inspector, wie unten vorgeschlagen, erhalte ich Folgendes:
quelle
UI elements
Befehl von hier auch hilfreich: n8henrie.com/2013/03/a-strategie-für-ui-scripting-in-applescriptAntworten:
AKTUALISIEREN. Dies wird in 10.7.x funktionieren, aber 10.6 hat les element info.
Die Schaltflächen (Dropdowns) im Druckbogen haben eine Beschreibung zur Beschreibung der Funktion.
Im Eingabehilfen-Inspektor ; Sie sehen dies, wenn Sie mit der Maus über das Element (Schaltfläche) fahren. Sie können den Sperr Zugänglichkeit Inspektor ‚s Ansicht mit cmd + F7.
Die Beschreibung wird als AXDescription aufgeführt
In den Fällen, in denen es sich bei den Druckern um Drucker für Voreinstellungen handelt, handelt es sich um Voreinstellungen
Wenn Sie die AXDescription kennen , können Sie die Zahlen mit so etwas vermeiden. Dies ist jedoch nicht der einzige Weg. Nur ein Beispiel.
Damit dies in diesem Beispiel funktioniert, muss das Druckblatt zusammen mit "Details anzeigen" sichtbar sein.
Die Schaltfläche / Dropdown hat ein Menü. Sie können es also auswählen oder anklicken, indem Sie sich auf die Menüpunkte im Menü der Schaltfläche beziehen .
Entweder nach Nummer oder nach Titel / AXTitle.
Sie können sich wiederholenden Code verkürzen, indem Sie eine Variable für die Schaltfläche verwenden und diese aufrufen. Wenn es wie in meinem Beispiel unten gemacht wird;
quelle
Verwenden Sie eines der in diesem Mac OS X-Hinweis verknüpften Skripts, um die entsprechende Form der Adresse zu ermitteln: Suchen nach Steuerelementen und Menüelementen zur Verwendung in AppleScript User Interface Scripting
IIRC müssen Sie auf die Popup-Menüschaltfläche klicken (Cmd befindet sich in Systemereignissen), bevor Sie einen Menüeintrag aus seinem Menü auswählen können.
quelle
Für diejenigen, die sich fragen, scheint es, dass ein Ort, an dem Sie den Accessibility Inspector in 10.7 finden, ist:
/Applications/Xcode.app/Contents/Applications
quelle
Ich habe kürzlich meinen Workflow für UI Scripting in AppleScript geschrieben .
Kurz gesagt, die Schlüsselkomponente, die die Dinge für mich viel einfacher gemacht hat, war das Erlernen, dass der
UI Elements
Befehl in AppleScript eine Liste der Begriffe zurückgibt , die der AppleScript-Editor sehen möchte , um die UI-Elemente aufzurufen. Verbinden Sie dies mit den Begriffen aus dem Accessibility Inspector (die sich häufig geringfügig unterscheiden), um ein funktionierendes Skript zu erstellen.quelle