Come conoscere il nome degli elementi dell'interfaccia utente utilizzando la finestra di ispezione Accessibilità (o qualsiasi altro strumento)


21

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 menu a discesa specifico.

Dì che ho:

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

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

Ho aperto Inspector Accessibility, ma dalle informazioni visualizzate lì, non riesco a individuare un riferimento al nome o qualche altro identificatore univoco per il menu a discesa specificato.

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

Qualsiasi aiuto sarebbe apprezzato.

AGGIORNAMENTO :

Utilizzando 10.6.8 e inspector come suggerito di seguito, ottengo quanto segue:

inserisci qui la descrizione dell'immagine


Ho trovato utile anche il UI elementscomando da qui: n8henrie.com/2013/03/a-strategy-for-ui-scripting-in-applescript
phs

Ecco un link ad un'altra pagina in Ask Different che è collegata alla pagina corrente, chiamata: AppleScript - Come posso ottenere nomi, attributi, proprietà, classi degli elementi dell'interfaccia utente a livello di codice senza "indovinare" tramite Accessibility Inspector? (Questa domanda qui era il motivo per cui volevo imparare alcuni fatti di base su "How-to" ...)
clemsam lang

Risposte:


15

AGGIORNARE. questo funzionerà in 10.7.x ma 10.6 ha informazioni sugli elementi les.

I pulsanti (menu a discesa) nel foglio di stampa hanno una descrizione per descrivere la funzione.

In Ispettore di accessibilità ; lo vedi quando passi il mouse sopra l'elemento (pulsante). puoi bloccare la vista della finestra di ispezione Accessibilità con cmd + F7.

La descrizione verrà elencata come AXDescription

inserisci qui la descrizione dell'immagine

Nel caso delle stampanti, si tratta di stampanti per preset, è preset

Se conosci AXDescription puoi evitare i numeri usando qualcosa del genere. Ma questo non è l'unico modo. Solo un esempio.

activate application "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. Quindi è possibile selezionare o fare clic su di esso facendo riferimento alle voci di menu del menu del pulsante.

O per numero o usando il suo 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 chiamandolo. Quando lo faccio come il mio esempio di seguito;

   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


4

Per coloro che si chiedono, sembra che una posizione in cui trovare Inspector Accessibility in 10.7 sia:

/Applications/Xcode.app/Contents/Applications


1

Di recente ho scritto il mio flusso di lavoro per gli script dell'interfaccia utente in AppleScript .

In breve, il componente chiave che ha reso le cose molto, molto più facili per me è stato apprendere che il UI Elementscomando in AppleScript restituisce un elenco dei termini che AppleScript Editor vuole vedere per chiamare gli elementi dell'interfaccia utente. Interfaccia con i termini visti da Accessibility Inspector (che sono spesso leggermente diversi) per creare uno script funzionante.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.