2010-01-21 14 views
5

io non sono sicuro se questo è fattibile tramite AppleScript e/o Automator ... ma mi piacerebbe essere in grado di:AppleScript o Automator per fare clic sui menu in un'applicazione?

a) avviare un'applicazione (So che questo può essere fatto abbastanza facilmente da AppleScript o Automator)

b) una volta avviata l'applicazione, utilizzare AppleScript o Automator per selezionare voci di menu specifiche.

esempio Vorrei lanciare Excel 2008 (ho l'edizione home/studente che non viene preconfigurata per Automator) e quindi fare clic sul menu "File" e fare clic su "Apri".

Qualsiasi indicazione su dove andare/cercare la modalità di selezione di voci di menu come questa (o se è addirittura possibile)?

È possibile eseguire "l'ordinamento" con la funzione di registrazione di Automator, ma Record è molto fragile.

Preferisco essere in grado di utilizzare AppleScript per semplicemente afferrare un "array" che contiene ogni voce di menu per l'applicazione e quindi fare clic a livello di programmazione sulla voce di menu 0 nel mio array ... ecc. ecc.

È possibile?

TIA

risposta

0

non so circa afferrare un array, ma questo sembra che potrebbe funzionare per l'invio dei clic del mouse, ecc:

VirtualInput

1

UI scripting è una bestia volubile. È fragile e spesso sensibile a molte cose fuori dal tuo controllo, come finestre di dialogo inaspettate (da altre applicazioni), cambiamenti nel carattere o nella lingua del sistema, attività dell'utente. Per non parlare delle modifiche nell'interfaccia utente di un'applicazione attraverso le versioni.

È molto più robusto usare talk direttamente all'applicazione tramite la sua API AppleScript. Questo è esattamente lo scopo di AppleScript. Puoi sempre vedere le azioni e i dati che un'applicazione può fornire tramite AppleScript tramite la voce di menu "Apri dizionario ..." in AppleScript Editor.app (seleziona l'applicazione che desideri script nella finestra di dialogo del file). Invece di simulare un clic del mouse su un menu, puoi chiamare l'azione che la voce di menu attiva direttamente tramite AppleScript.

Naturalmente non tutte le applicazioni hanno una API AppleScript completa (o addirittura nessuna). Excel, tuttavia, ha un eccellente supporto AppleScript, se questo è il tuo obiettivo.

Se sei veramente cercando di fare il test dell'interfaccia utente, vi consiglio di iniziare con le altre opzioni:

  1. testare il modello (analogo al script del modello della applicazione tramite AppleScript). Infatti, se includi un'API di AppleScript nella tua app, puoi anche eseguire il test automatico di tale API.
  2. Utilizzare le aggiunte di prova dell'unità Google Toolbox for Mac's (o eseguire il rollover) per inviare programmaticamente eventi di mouse o tastiera alla propria app.
  3. Utilizzare Instruments.app per registrare una sequenza UI. La registrazione degli strumenti è solida (non ho usato la funzione di registrazione di Automator), e ottieni anche tutti gli altri extra di strumenti.
+0

+1. Se il dizionario Applescript ha un comando "apri", è molto meglio usarlo rispetto allo scripting dell'interfaccia utente. Lo scripting dell'interfaccia utente funziona meglio in teoria di qualsiasi altra cosa. –

0

In effetti, l'interfaccia utente di scripting è fragile e schizzinoso, ma si potrebbe dare un'occhiata al di Apple AppleScript GUI Scripting page

3
tell application "###" 

activate 

end tell 


tell application "System Events" 

tell process "###" 

click menu item "^^^" of menu "$$$" of menu bar 1 

end tell 

end tell 

Metti la tua applicazione per la ### e mettere il vostro menu in per il^^^ e metti il ​​tuo menu (file, modifica, vista, ecc.) in $$$. La capitalizzazione conta.

Metti in AppleScript btw

ESEMPIO:

tell application "iTunes" 

activate 

end tell 


tell application "System Events" 

tell process "iTunes" 

click menu item "as list" of menu "view" of menu bar 1 

end tell 

end tell 

eliminare i doppi spazi eccetto tra FINE raccontare e tell application "eventi di sistema"

Problemi correlati