Wie Sie den Namen von UI-Elementen mithilfe des Eingabehilfen-Inspektors (oder eines anderen Tools) kennen

21

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:

Bildbeschreibung hier eingeben

Roberto Aloi
quelle
Ich fand den UI elementsBefehl von hier auch hilfreich: n8henrie.com/2013/03/a-strategie-für-ui-scripting-in-applescript
phs
Hier ist ein Link zu einer anderen Seite in Ask Different , die mit der aktuellen Seite verknüpft ist: AppleScript - Wie kann ich die Namen, Attribute, Eigenschaften und Klassen von UI-Elementen programmgesteuert abrufen, ohne über den Accessibility Inspector zu „raten“? (Diese hier gestellte Frage war der Grund, warum ich einige grundlegende Fakten zu "How-to" lernen wollte ...)
clemsam lang

Antworten:

15

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

Bildbeschreibung hier eingeben

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.

activate application "Preview"
tell application "System Events"
    tell process "Preview"
        click ((pop up buttons of sheet 1 of window 1) whose description is "Printers")
    end tell
end tell

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.

activate application "Preview"
    tell application "System Events"
        tell process "Preview"
            click ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

click menu item "Last Used Settings" of menu of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")
        end tell
    end tell

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;

   activate application "Preview"
tell application "System Events"
    tell process "Preview"
        set Presets_button to item 1 of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

        click Presets_button
        click menu item "Last Used Settings" of menu of Presets_button
    end tell
end tell
markhunte
quelle
4

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

Arnaud P
quelle
1

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 ElementsBefehl 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.

n8henrie
quelle