Identifizieren Sie die Namen von Mac OS X-Fenstern, Gruppen und Textfeldern zur Verwendung in AppleScript


8

Ich habe ein Applescript, in dem ich den Wert der Textfelder Nameund Passwordeines zum Prozess gehörenden Fensters festlegen möchte SecurityAgent.

Es ist ähnlich wie folgt:

tell window "Authenticate" of process "SecurityAgent"
    tell group 1
        set value of text field 1 to "king"
        set value of text field 2 to "king1"
    end tell
    click button "OK" of group 2
end tell 

Während sich mein Skript auch auf den Prozess bezieht, wird das SecurityAgentbetreffende Fenster beim Herunterfahren von OS X angezeigt und ein anderer Benutzer ist angemeldet. Das SecurityAgentFenster wird angezeigt, in dem Sie nach dem Benutzernamen und dem Kennwort des Administrators gefragt werden, um den Vorgang abzuschließen Prozess herunterfahren. Ich weiß nicht, wie ich auf die Textfelder in diesem Fenster verweisen soll.

Meine Frage ist, wie finde ich den Namen dieser Textfelder, die Gruppe, zu der sie gehören, und das Fenster heraus, zu dem sie gehören? Gibt es eine Methode zum Zuordnen von OS X-Fenstern, damit ich im AppleScript darauf verweisen kann? Ich kann anscheinend nirgendwo Informationen dazu finden.

Antworten:


9

Ich habe einmal versucht, auf eine Schaltfläche in der Image Capture-Anwendung zu klicken, und es hat eine Weile gedauert, bis ich diese bestimmte Schaltfläche gefunden habe. Wie in meiner Frage / Antwort dort erläutert, gibt es eine Möglichkeit, den UIElementInspector zu verwenden . Sie können es kostenlos von Apple herunterladen (Download-Link befindet sich oben in einer Schaltfläche, direkter Link hier ).

Sie können einen Blick in die UI-Elemente jedes Fensters werfen, über das Sie schweben. Drücken Cmd- F7Sperrt den Inhalt für das Element, über dem Sie schweben.

Geben Sie hier die Bildbeschreibung ein

Der "lustige" Teil besteht darin, herauszufinden, wie das Fenster gruppiert ist und welche Elemente zu welchem ​​übergeordneten Element gehören. Der UI-Browser für Anwendungen im Wert von 55 US-Dollar behauptet, dies besser zu machen.

Wenn Sie AppleScript manuell debuggen und sich im Bereich eines Fensters befinden, können Sie versuchen, mithilfe von Befehlen wie:

UI elements of window 1
UI elements of splitter group 1 of window 1
UI elements of group 1 of splitter group 1 of window 1

Diese geben Ihnen eine Liste, mit der Sie Ihre Suche nach Elementen und ihren jeweiligen Titeln eingrenzen können.


1
+100 für die Information über UIElementInspector
Nifle

@slhck - Wow! Was für eine fantastische Antwort. Es wird sehr geschätzt und ich werde sofort daran arbeiten. Neugierig, da ich generell neu bei AppleScript bin. Wie würde ich die UI elementsBefehle machen?
Stefmikhail

1
@Stef Nun, zum Beispiel UI Elements of window "Authenticate" of process .... Tun Sie dies einfach im AppleScript-Editor und sehen Sie sich die Ergebnisse unten an. Ich habe leider keinen effizienteren Weg gefunden, dies zu tun.
Slhck

@slhck - Nein, nein, das klingt perfekt. Und am Ende bietet UI Browser eine einmonatige Testversion mit allen Funktionen an, sodass ich es auch versuchen kann. Nochmals vielen Dank.
Stefmikhail

@stefmikhail Klar, kein Problem! Lassen Sie mich wissen, wie der UI-Browser für Sie funktioniert. Ich hatte noch keine Zeit, es zu versuchen!
Slhck
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.