Identifique los nombres de las ventanas, grupos y campos de texto de Mac OS X para utilizarlos en AppleScript

8

Tengo un código de Apple en el que deseo establecer el valor de los campos de texto Name y Password De una ventana perteneciente al proceso. SecurityAgent.

Es similar a lo siguiente:

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 

Si bien mi guión también se refiere al proceso. SecurityAgent, la ventana en cuestión es la que aparece cuando se cierra OS X, y otro usuario ha iniciado sesión. SecurityAgent la ventana emergente le solicita el nombre de usuario y la contraseña del administrador para completar el proceso de cierre. No sé cómo referirme a los campos de texto en dicha ventana.

Mi pregunta es, ¿cómo averiguo el nombre de estos campos de texto, el grupo al que pertenecen y la ventana a la que pertenecen? ¿Existe un método para asignar ventanas de OS X para que pueda consultarlas en el AppleScript? Parece que no puedo encontrar información sobre esto en cualquier lugar.

stefmikhail
fuente

Respuestas:

9

Yo una vez Intenté hacer clic en un botón en la aplicación Image Capture. y me tomó un tiempo encontrar este botón en particular. Como se explica en mi pregunta / respuesta allí, hay una manera, utilizando el UIElementInspector . Usted puede Descárgalo gratis desde Apple. (El enlace de descarga está en la parte superior de un botón, enlace directo aquí ).

Te permite echar un vistazo a los elementos de la interfaz de usuario de cada ventana que estás desplazando. Prensado Cmd - F7 bloquea su contenido en el elemento que está flotando.

enter image description here

La parte "divertida" es en realidad averiguar cómo se agrupa la ventana y qué elementos pertenecen a qué padre. La aplicación de $ 55 Navegador de interfaz de usuario Afirma hacer un mejor trabajo en esto.

Cuando está depurando AppleScript manualmente y está dentro del alcance de una ventana, puede intentar adivinar su camino hacia elementos individuales utilizando comandos como:

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

Estos le proporcionarán una lista que puede utilizar para limitar su búsqueda de elementos y sus respectivos títulos.

slhck
fuente
1
+100 por avisarme sobre UIElementInspector
Nifle
@slhck - ¡Guau! Qué respuesta tan fantástica. Es muy apreciado, y me pondré a trabajar de inmediato en esto. Curioso sin embargo, ya que soy nuevo en AppleScript en general; ¿Cómo haría la UI elements comandos?
stefmikhail
1
@Stef Bueno, por ejemplo UI Elements of window "Authenticate" of process .... Solo haz esto en el editor de AppleScript y mira los resultados en la parte inferior. Desafortunadamente, no he encontrado una forma más eficiente de hacer esto.
slhck
@slhck - No, no, eso suena perfecto. Y el UI Browser ofrece una prueba completa de un mes, por lo que también podré darle una oportunidad. Una vez más, muchas gracias.
stefmikhail
@stefmikhail Claro, no hay problema! Déjame saber cómo funciona el UI Browser para ti, ¡aún no he tenido tiempo para probarlo!
slhck