Come conoscere il nome degli elementi dell'interfaccia utente utilizzando Accessibility inspector (o qualsiasi altro strumento)

17

Sto cercando di interagire con una finestra di dialogo di stampa tramite Applescript.

Quello che voglio emulare è l'utente che imposta un valore su un dropdown specifico.

Dire che ho:

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

Come faccio a sapere il nome XXX? Ad esempio, come faccio a distinguere tra i menu a discesa "stampante" e "predefiniti"?

Ho aperto l'ispettore dell'accessibilità, ma dalle informazioni visualizzate non riesco a individuare un riferimento al nome o qualche altro identificatore univoco per il menu a discesa specificato.

Ho visto molte persone che usano i numeri per fare riferimento al diverso menu a discesa, ma non sono sicuro che sia una buona pratica. Cosa succede se Apple decide di scambiare l'ordine di due elenchi a discesa ad un certo punto?

Qualsiasi aiuto sarebbe apprezzato.

UPDATE :

Usando 10.6.8 e ispettore come suggerito di seguito, ottengo il seguente:

    
posta Roberto Aloi 15.02.2012 - 13:50
fonte

4 risposte

14

UPDATE. questo funzionerà in 10.7.x ma 10.6 contiene le informazioni sugli elementi.

I pulsanti (menu a discesa) nel foglio di stampa dispongono di Descrizione per descrivere la funzione.

In Ispettore accessibilità ; lo vedi quando passa il mouse sopra l'elemento (pulsante). puoi bloccare la vista Ispettore accessibilità con cmd + F7.

La descrizione verrà elencata come AXDescription

NeicasiperlestampantièPrintersperipresetèPresets

SeconosciAXDescriptionpuoievitarecheinumeriutilizzinoqualcosadisimile.Maquestononèl'unicomodo.Solounesempio.

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

Affinché quanto sopra funzioni in questo esempio, il foglio di stampa deve essere visibile insieme a "Mostra dettagli"

Il pulsante / menu a discesa ha un menu. Puoi quindi selezionarlo o fare clic facendo riferimento alle voci di menu del menu del pulsante.

O per numero o usando il titolo / 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

Puoi abbreviare il codice ripetitivo usando una variabile per il pulsante e chiamandola. Quando lo fai come il mio esempio qui sotto;

   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
    
risposta data 15.02.2012 - 19:09
fonte
5

Utilizza uno degli script collegati in questo suggerimento di Mac OS X per trovare il modulo appropriato di indirizzo: Ricerca di voci di menu e di controllo per l'utilizzo nell'interfaccia utente di AppleScript Scripting

IIRC, dovrai fare clic su (cmd è in in Eventi di sistema) il pulsante del menu popup prima di poter selezionare una voce di menu dal suo menu.

    
risposta data 15.02.2012 - 15:25
fonte
3

Per coloro che si chiedono, sembra che un luogo in cui trovare Accessibility Inspector in 10.7 sia:

/Applications/Xcode.app/Contents/Applications

    
risposta data 17.09.2013 - 13:53
fonte
0

Recentemente ho scritto il mio flusso di lavoro per UI Scripting in AppleScript .

In breve, il componente chiave che ha reso le cose molto, molto più semplici per me è stato imparare che il comando UI Elements in AppleScript restituisce un elenco di i termini che AppleScript Editor vuole vedere per chiamare il Elementi dell'interfaccia utente. Interfaccia questo con i termini visti da Accessibility Inspector (che sono spesso leggermente diversi) per creare uno script funzionante.

    
risposta data 31.03.2013 - 17:04
fonte

Leggi altre domande sui tag