AppleScript - ¿Cómo identificar botones y presionarlos?

3

Estoy intentando automatizar la ejecución de las herramientas técnicas a través de AppleScript. Lo tengo funcionando pero solo con acceso completo al teclado (usando la pestaña y el espacio para navegar por la interfaz de usuario), pero no todas las máquinas tienen esto habilitado cuando las enciendo por primera vez, por lo que necesito una forma de activar la computadora Run Check. Supongo que esto es posible con la función "hacer clic en el botón", pero no puedo encontrar la forma de averiguar qué botón es cuál con el inspector de accesibilidad. Aquí está el diseño de TechTools y puedes ver en la parte inferior izquierda el botón que quiero presionar para iniciar las pruebas.

Yaquíestálainformacióndelinspectorenelbotón.

Como dije, puedo activar esta multa cuando el acceso completo al teclado está habilitado porque es solo un caso de copiar golpes de teclado.

No estoy seguro de si estoy malinterpretando el concepto de identificar los botones dentro del programa o cómo especificar en qué ventana está (asumo que es la ventana 1)

Este es un ejemplo del tipo de script que he estado escribiendo para intentar lograrlo (sé que este solo minimiza la ventana). ¿Sigo aumentando el valor del botón hasta que finalmente se ejecuta la computadora de verificación? Cuando probé el botón 4, se activó una opción en Archivo en la barra superior.
Cualquier ayuda sería muy apreciada.

tell application "System Events"
    tell process "TechTool Pro 9"
        click button 2 of window 1
    end tell
end tell
    
pregunta wolfiejoe 25.06.2018 - 15:31

2 respuestas

3

Aquí hay un pequeño truco:

Obtenga las coordenadas de pantalla de ese botón. Puede hacer esto iniciando una captura de pantalla con puntos de mira, normalmente presionando 4 (⟨Cmd⟩⟨Shift⟩⟨4⟩) . Navegue las cruces sobre el botón dentro de su región en la que se puede hacer clic.

Hice algo similar con un cuadro de diálogo en Script Editor :

Puedeshacerquelascoordenadasdemibotónsean{896,674}.

Acontinuación,enScriptEditor,ingreseestalíneadecódigo,insertandosuscoordenadassegúncorresponda:

tellapplication"System Events" to click at {896, 674}

Puedo asumir que ya tienes los privilegios de accesibilidad correctos otorgados en el contexto de tu publicación. Por lo tanto, simplemente puede ejecutar este script.

Simplemente asegúrese de que el botón esté visible antes de ejecutar el script y que no haya cambiado de posición en la pantalla. Asegúrate de que no haya ventanas que lo oculten o superpongan.

Todo va bien, sucederán dos cosas:

  1. El sistema emitirá un clic y hará clic en ese botón;
  2. En el panel de resultados en la parte inferior de la ventana Script Editor , verás algo como esto:
    button "Done" of window "Open" of application process "Script Editor" of application "System Events"

Thhat es la referencia al objeto button , que puedes copiar y pegar en tu script.

Funciona para cualquier elemento de la GUI en la pantalla: simplemente aísle sus coordenadas, emita un click , y devolverá la referencia del objeto .

ACTUALIZACIÓN:

Acabo de adquirir una copia de TechTool Pro versión 8, he aprendido que la aplicación es no compatible con GUI. Por lo tanto, esto explica por qué el truco que describí no pudo devolver una referencia de objeto (porque no hay ninguna), y desafortunadamente, no podrá automatizar la ejecución de TechTools utilizando AppleScript.

    
respondido por el CJK 25.06.2018 - 17:07
1

Sikuli

Si bien esto es posible con AppleScript, considere usar Sikuli para esta tarea:

  

Sikuli automatiza todo lo que ves en la pantalla. Utiliza el reconocimiento de imágenes para identificar y controlar los componentes de la GUI. Es útil cuando no hay un acceso fácil al código interno o fuente de una GUI.

    
respondido por el Graham Miln 25.06.2018 - 17:44

Lea otras preguntas en las etiquetas