Interacción automatizada con Google Chrome

9

Muy bien SU, tengo una nuez divertida para romper.

Tengo 8 pantallas configuradas en línea, todas enganchadas en un robusto G5 con Snow Leopard (sí, 4 tarjetas gráficas; ¡aproximadamente 15,000 píxeles de ancho!). Estoy configurando una demostración que utiliza 8 ventanas del navegador Chrome completamente protegidas, cada una apuntando a una URL diferente. Es un fastidio hacer esto manualmente cada vez que se reinicia la computadora.

Dada esta configuración, quiero escribir un script para automáticamente:

  1. Abra una ventana de Chrome en una pantalla específica.
  2. Apunte esa ventana a una URL específica
  3. Pantalla completa esa ventana (comando-F es el atajo de teclado)

No he usado el automatizador y no estoy particularmente familiarizado con las secuencias de comandos de shell, pero me preguntaba si había alguna sugerencia elegante de la multitud.

Actualización: incluso si necesito usar Automator para la funcionalidad de alto nivel, finalmente espero una forma de activar el script desde una línea de comandos / script. Me gustaría poder activar esta demostración de forma remota desde un shell si es necesario.

astuto
fuente
Creo que Automater es un excelente lugar para comenzar ... Aunque yo tampoco lo he usado tanto. Solía ​​usar un producto "Egg Plant Purple" que puedes usar para esto. Aunque me gustaría pensar que hay opciones mucho mejores por ahí ...
James T Snell el
Sin embargo, creo que la pantalla específica es lo que será difícil de lograr.
slhck

Respuestas:

8

¡Me lo imaginé!

Applescript es un gran recurso, y Chrome tiene un diccionario (puede verlo en el "Editor de Applescript" y luego seleccionar "Abrir diccionario" y encontrar Chrome en la lista).

El código:

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

El script hace lo siguiente:

  1. Active Chrome (o lo abre, o si está abierto, lo convierte en el foco)
  2. Cierre cualquier ventana abierta del navegador.
  3. Cree ventanas de navegador [screenCount], abriéndolas en una coordenada específica (los dos primeros términos en los {límites} son las x, y de la esquina superior izquierda. Los dos segundos términos en los {límites} son las x, y de las inferiores Correcto)
  4. Después de abrir cada ventana del navegador, envíe un comando de "pantalla completa" (Comando + Mayús + F)
  5. Después de que cada ventana del navegador esté completamente filtrada, configure la URL en la ubicación deseada.

Tenga en cuenta que mis URL se ajustan a una fórmula específica (por ejemplo, http: // localhost: 8000 / # 0 ), por lo que fue fácil generarlas dinámicamente. Para cualquier persona con necesidades similares al azar, puede usar esto como punto de partida.

Finalmente, en cuanto al requisito de terminal, puede ejecutar AppleScript en la terminal utilizando la siguiente línea:

osascript [nombre de script]

astuto
fuente