Cómo saber el nombre de los elementos de la IU utilizando el inspector de accesibilidad (o cualquier otra herramienta)

15

Estoy intentando interactuar con un diálogo de impresión a través de Applescript.

Lo que quiero emular es que el usuario establezca un valor en un menú desplegable específico.

Di que tengo:

tell application "System Events"
  tell process "Preview"
    set value of pop up button XXX to YYY
  end tell
end tell

¿Cómo debo saber el nombre XXX? Por ejemplo, ¿cómo puedo distinguir entre los menús desplegables "impresora" y "preajustes"?

He abierto el Inspector de accesibilidad, pero a partir de la información que se muestra allí, no puedo encontrar una referencia al nombre o algún otro identificador único para el menú desplegable especificado.

He visto a muchas personas usar números para referirse a la lista desplegable diferente, pero no estoy seguro de que esta sea una buena práctica. ¿Qué sucede si Apple decide intercambiar el orden de dos menús desplegables en algún momento?

Cualquier ayuda sería apreciada.

ACTUALIZACIÓN :

Utilizando 10.6.8 y el inspector como se sugiere a continuación, obtengo lo siguiente:

    
pregunta Roberto Aloi 15.02.2012 - 13:50

4 respuestas

13

ACTUALIZAR. esto funcionará en 10.7.x pero 10.6 tiene información de elementos de archivo.

Los botones (menús desplegables) en la hoja de impresión tienen una descripción para describir la función.

En inspector de accesibilidad ; Usted ve esto cuando pasa el mouse sobre el elemento (botón). puede bloquear la vista del inspector de accesibilidad con cmd + F7.

La descripción aparecerá como AXDescription

EnelcasodelasImpresorasesImpresorasparaPresets,esPresets

SiconocelaDescripcióndeAX,puedeevitarlosnúmerosutilizandoalgocomoesto.Peroestanoeslaúnicamanera.Solounejemplo.

activateapplication"Preview"
tell application "System Events"
    tell process "Preview"
        click ((pop up buttons of sheet 1 of window 1) whose description is "Printers")
    end tell
end tell

Para que funcione lo anterior en este ejemplo, la hoja de impresión debe estar visible junto con 'Mostrar detalles'

El botón / desplegable tiene un menú. Por lo tanto, puede seleccionarlo o hacer clic en él consultando los elementos del menú del menú del botón.

Ya sea por número o usando su título / AXTitle.

activate application "Preview"
    tell application "System Events"
        tell process "Preview"
            click ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

click menu item "Last Used Settings" of menu of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")
        end tell
    end tell

Puedes acortar el código repetitivo usando una variable para el botón y llamando a eso. Al hacerlo como mi ejemplo a continuación;

   activate application "Preview"
tell application "System Events"
    tell process "Preview"
        set Presets_button to item 1 of ((pop up buttons of sheet 1 of window 1) whose description is "Presets")

        click Presets_button
        click menu item "Last Used Settings" of menu of Presets_button
    end tell
end tell
    
respondido por el markhunte 15.02.2012 - 19:09
5

Utilice uno de los scripts vinculados en esta sugerencia de Mac OS X para encontrar la forma de dirección adecuada: Búsqueda de elementos de control y menú para usar en las secuencias de comandos de la interfaz de usuario de AppleScript

IIRC, deberás hacer clic (cmd está en Eventos del sistema) en el botón de menú emergente antes de poder seleccionar un elemento del menú desde su menú.

    
respondido por el Wayfaring Stranger 15.02.2012 - 15:25
3

Para aquellos que se preguntan, parece que una ubicación donde encontrar el Inspector de Accesibilidad en 10.7 es:

/Applications/Xcode.app/Contents/Applications

    
respondido por el Arnaud P 17.09.2013 - 13:53
0

Recientemente escribí mi flujo de trabajo para scripts UI en AppleScript .

En resumen, el componente clave que hizo las cosas mucho más fáciles para mí fue saber que el comando UI Elements en AppleScript devuelve una lista de los términos que el Editor de AppleScript quiere ver para llamar al Elementos de la interfaz de usuario. Interconecte esto con los términos que se ven en el Inspector de accesibilidad (que a menudo son ligeramente diferentes) para crear un script de trabajo.

    
respondido por el n8henrie 31.03.2013 - 17:04

Lea otras preguntas en las etiquetas