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.

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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.