Interazione automatizzata con Google Chrome


9

Va bene SU, ho un dado divertente da decifrare.

Ho 8 schermi configurati in una linea, tutti collegati a un robusto G5 con Snow Leopard (sì, 4 schede grafiche; circa 15.000 pixel di larghezza!). Sto configurando una demo che utilizza 8 finestre del browser Chrome a schermo intero, ognuna indicante un URL diverso. È un dolore nel culo farlo manualmente ogni volta che il computer viene riavviato.

Dato questo set-up, voglio scrivere uno script automaticamente:

  1. Apri una finestra di Chrome su una schermata specifica
  2. Punta quella finestra su un URL specifico
  3. Schermo intero quella finestra (comando-F è la scorciatoia da tastiera)

Non ho usato l'automatore e non ho particolare familiarità con gli script di shell, ma mi chiedevo se ci fossero suggerimenti fantasiosi dalla folla.

Aggiornamento: anche se ho bisogno di usare Automator per la funzionalità di alto livello, in definitiva spero in un modo per attivare lo script da una riga di comando / script. Mi piacerebbe poter attivare questa demo da remoto da una shell, se necessario.


Penso che Automater sia un ottimo punto di partenza. Anche se anch'io non l'ho usato così tanto. Usavo un prodotto "Melanzana Viola" che potresti essere in grado di usare per questo - Anche se mi piacerebbe pensare che ci siano opzioni molto migliori là fuori ..
James T Snell

Penso che lo schermo specifico sia ciò che sarà difficile da ottenere però.
slhck,

Risposte:


8

L'avevo capito!

Applescript è un'ottima risorsa e Chrome ha un dizionario (puoi visualizzarlo in "Applescript Editor", quindi selezionare "Apri dizionario" e trovare Chrome nell'elenco).

Il codice:

set screenCount to 8
set screenWidth to 1950
set baseURL to "http://localhost:8000"

tell application "Google Chrome"
    activate
    repeat while window 1 exists
        close window 1
    end repeat
    repeat with x from 1 to screenCount

        set w to make new window with properties {bounds:{screenWidth * (x - 1), 500, 500 + screenWidth * (x - 1), 1000}}
        tell application "System Events" to keystroke "F" using {command down, shift down}
        set URL of active tab of w to (baseURL & "/" & "#" & (x - 1))

    end repeat
end tell

Lo script procede come segue:

  1. Attiva Chrome (o lo apre o, se è aperto, lo mette a fuoco)
  2. Chiudi tutte le finestre del browser aperte
  3. Crea finestre del browser [screenCount], aprendole a una coordinata specifica (i primi due termini nei {limiti} sono la x, y in alto a sinistra. I secondi due termini nei {limiti} sono la x, y della in basso destra)
  4. Dopo aver aperto ciascuna finestra del browser, invia un comando "schermo intero" (Comando + Maiusc + F)
  5. Dopo che la finestra di ogni browser è a schermo intero, imposta l'URL nella posizione desiderata.

Tieni presente che i miei URL si adattano a una formula specifica (ad esempio http: // localhost: 8000 / # 0 ), quindi è stato facile generarli dinamicamente. Per chiunque abbia esigenze casualmente simili puoi usarlo come punto di partenza.

Infine, per quanto riguarda il requisito terminale, è possibile eseguire applecript sul terminale utilizzando la seguente riga:

osascript [nome script]

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.