AppleScript - Come identificare i pulsanti e premerli?

3

Sto cercando di automatizzare l'esecuzione dei techtools tramite AppleScript. Ho funzionato, ma solo con l'accesso completo da tastiera (utilizzando la scheda e lo spazio per navigare nell'interfaccia utente) ma non tutte le macchine hanno abilitato quando le accendo per la prima volta, quindi ho bisogno di un modo per attivare il computer di controllo delle esecuzioni.
Presumo che questo sia possibile con la funzione "click button" ma non riesco a capire come scoprire quale pulsante è con l'ispettore di accessibilità. Ecco il layout di TechTools e puoi vedere in basso a sinistra il pulsante che voglio premere per avviare i test.

Edeccoleinformazionidell'ispettoresulpulsante.

Come ho detto, posso attivare questo valore quando è abilitato l'accesso con tastiera completa perché si tratta solo di copiare i tratti della tastiera.

Non sono sicuro se sto fraintendendo il concetto di identificare i pulsanti all'interno del programma o come specificare in quale finestra si trova (presumo che sia la finestra 1.)

Questo è un esempio del tipo di script che ho scritto per tentare di ottenere questo risultato (so che questo minimizza solo la finestra). Continuo ad aumentare il valore del pulsante finché alla fine non viene eseguito solo il computer di controllo? Quando ho provato il pulsante 4 ha attivato un'opzione sotto File nella barra in alto.
Qualsiasi aiuto sarebbe molto apprezzato.

tell application "System Events"
    tell process "TechTool Pro 9"
        click button 2 of window 1
    end tell
end tell
    
posta wolfiejoe 25.06.2018 - 15:31
fonte

2 risposte

3

Ecco un piccolo trucco:

Ottieni le coordinate dello schermo di quel pulsante. Puoi farlo iniziando una cattura schermo con mirino, solitamente premendo 4 (⟨Cmd⟩⟨Shift⟩⟨4⟩) . Naviga il mirino sul pulsante all'interno della sua regione cliccabile.

Ho fatto una cosa simile con una finestra di dialogo in Script Editor :

Lecoordinatedelmiopulsantesonocirca{896,674}.

Successivamente,inEditordiscript,inserisciquestarigadicodice,inserendoletuecoordinatecomeappropriato:

tellapplication"System Events" to click at {896, 674}

Posso presumere che tu abbia già i privilegi di accessibilità giusti concessi dal contesto del tuo post. Pertanto, puoi semplicemente eseguire questo script.

Assicurati che il pulsante sia visibile prima di eseguire lo script e che non abbia cambiato posizione sullo schermo. Assicurati che non ci siano finestre che si oscurano o si sovrappongono.

Se tutto va bene, succederanno due cose:

  1. Il sistema emetterà un clic e farà clic su quel pulsante;
  2. Nel riquadro dei risultati nella parte inferiore della finestra Script Editor , vedrai qualcosa di simile:
    button "Done" of window "Open" of application process "Script Editor" of application "System Events"

Che è il riferimento all'oggetto button , che puoi copiare e incollare nello script.

Funziona per qualsiasi elemento della GUI sullo schermo: isola solo le sue coordinate, emette un click , e restituirà il riferimento all'oggetto .

UPDATE:

Avendo appena acquisito una copia di TechTool Pro versione 8, ho appreso che l'applicazione è not GUI-Scriptable. Pertanto, questo spiega perché il trucco descritto non ha restituito un riferimento a un oggetto (perché non ce n'è) e, sfortunatamente, non potrai automatizzare l'esecuzione di TechTools utilizzando AppleScript.

    
risposta data 25.06.2018 - 17:07
fonte
1

Sikuli

Sebbene ciò sia possibile con AppleScript, considera l'utilizzo di Sikuli per questa attività:

Sikuli automates anything you see on the screen. It uses image recognition to identify and control GUI components. It is useful when there is no easy access to a GUI's internal or source code.

    
risposta data 25.06.2018 - 17:44
fonte

Leggi altre domande sui tag