Identifica i nomi delle finestre, dei gruppi e dei campi di testo di Mac OS X da utilizzare in AppleScript


8

Ho un Applescript in cui desidero impostare il valore dei campi di testo Namee Passworddi una finestra appartenente al processo SecurityAgent.

È simile al seguente:

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 

Mentre il mio script si riferisce anche al processo SecurityAgent, la finestra in questione è quella che viene visualizzata quando si chiude OS X e viene registrato un altro utente. Viene visualizzata la SecurityAgentfinestra che richiede il nome utente e la password dell'amministratore per completare il processo di spegnimento. Non so come fare riferimento ai campi di testo in detta finestra.

La mia domanda è: come posso scoprire il nome di questi campi di testo, il gruppo a cui appartengono e la finestra a cui appartengono? Esiste un metodo per mappare le finestre di OS X in modo che io possa fare riferimento ad esse in AppleScript? Non riesco a trovare informazioni al riguardo da nessuna parte.

Risposte:


9

Una volta ho provato a fare clic su un pulsante nell'applicazione Image Capture e mi ci è voluto un po 'per trovare questo particolare pulsante. Come spiegato nella mia domanda / risposta lì, c'è un modo, usando UIElementInspector . Puoi scaricarlo gratuitamente da Apple (il link per il download è in alto in un pulsante, il link diretto qui ).

Ti permette di sbirciare negli elementi dell'interfaccia utente di ogni finestra che stai passando. Premendo Cmd- F7blocca il suo contenuto sull'elemento che stai librando.

inserisci qui la descrizione dell'immagine

La parte "divertente" è in realtà capire come è raggruppata la finestra e quali elementi appartengono a quale genitore. Il browser dell'interfaccia utente dell'applicazione $ 55 afferma di fare un lavoro migliore in questo.

Quando esegui il debug manuale di AppleScript e ti trovi nell'ambito di una finestra, puoi provare a indovinare i singoli elementi utilizzando comandi come:

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

Questi ti daranno un elenco che puoi usare per restringere la ricerca di elementi e dei loro rispettivi titoli.


1
+100 per avermi informato di UIElementInspector
Nifle,

@slhck - Wow! Che risposta fantastica. È molto apprezzato e mi metterò subito al lavoro su questo. Curioso però, dato che sono nuovo di AppleScript in generale; Come farei i UI elementscomandi?
stefmikhail,

1
@Stef Bene, per esempio UI Elements of window "Authenticate" of process .... Basta farlo nell'editor AppleScript e guardare i risultati in fondo. Purtroppo non ho trovato un modo più efficiente per farlo.
slhck,

@slhck - No no, sembra perfetto. E finisce UI Browser offre una prova completa di un mese, quindi sarò in grado di provare anche io. Ancora grazie mille.
stefmikhail,

@stefmikhail Certo, nessun problema! Fammi sapere come funziona UI Browser, non hai ancora avuto il tempo di provarlo!
slhck,
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.