Identifier les noms de fenêtre, de groupe et de champ de texte Mac OS X à utiliser dans AppleScript

8

J'ai un Applescript dans lequel je souhaite définir la valeur des champs de texte Nameet Passwordd'une fenêtre appartenant au processus SecurityAgent.

Il est similaire au suivant:

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 

Alors que mon script fait également référence au processus SecurityAgent, la fenêtre en question est celle qui apparaît lorsque vous arrêtez OS X, et un autre utilisateur est connecté. La SecurityAgentfenêtre apparaît pour demander le nom d'utilisateur et le mot de passe administrateur afin de terminer la processus d'arrêt. Je ne sais pas comment faire référence aux champs de texte dans ladite fenêtre.

Ma question est, comment puis-je trouver le nom de ces champs de texte, le groupe auquel ils appartiennent et la fenêtre à laquelle ils appartiennent? Existe-t-il une méthode de mappage des fenêtres OS X pour que je puisse y faire référence dans l'AppleScript? Je n'arrive pas à trouver d'informations à ce sujet nulle part.

stefmikhail
la source

Réponses:

9

J'ai essayé une fois de cliquer sur un bouton dans l'application Capture d'image et il m'a fallu un certain temps pour trouver ce bouton particulier. Comme expliqué dans ma question / réponse, il existe un moyen d'utiliser UIElementInspector . Vous pouvez le télécharger gratuitement auprès d'Apple (le lien de téléchargement est en haut d'un bouton, lien direct ici ).

Il vous permet de jeter un œil aux éléments de l'interface utilisateur de chaque fenêtre que vous survolez. Appuyer Cmd- F7verrouille son contenu sur l'élément que vous survolez.

entrez la description de l'image ici

La partie "amusante" consiste en fait à comprendre comment la fenêtre est groupée et quels éléments appartiennent à quel parent. Le navigateur UI d' application à 55 $ prétend faire un meilleur travail à ce sujet.

Lorsque vous déboguez manuellement AppleScript et que vous êtes dans le champ d'une fenêtre, vous pouvez essayer de deviner votre chemin vers des éléments individuels à l'aide de commandes telles que:

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

Ceux-ci vous donneront une liste que vous pouvez utiliser pour affiner votre recherche d'éléments et leurs titres respectifs.

slhck
la source
1
+100 pour m'avoir fait connaître UIElementInspector
Nifle
@slhck - Wow! Quelle réponse fantastique. C'est très apprécié et je vais travailler tout de suite là-dessus. Curieux cependant, comme je suis nouveau sur AppleScript en général; Comment pourrais-je faire les UI elementscommandes?
stefmikhail
1
@Stef Eh bien, par exemple UI Elements of window "Authenticate" of process .... Faites-le dans l'éditeur AppleScript et regardez les résultats en bas. Je n'ai malheureusement pas trouvé de moyen plus efficace de le faire.
slhck du
@slhck - Non non, cela semble parfait. Et finalement, le navigateur UI propose un essai complet de fonctionnalités d'un mois, donc je pourrai également essayer. Encore une fois, merci beaucoup.
stefmikhail
@stefmikhail Bien sûr, pas de problème! Faites-moi savoir comment le navigateur UI fonctionne pour vous, vous n'avez pas encore eu le temps de l'essayer!
slhck