Interação automatizada com o Google Chrome

9

Tudo bem SU, eu tenho uma diversão divertida para quebrar.

Eu tenho 8 telas montadas em uma linha, todas enganchadas em um G5 robusto rodando o Snow Leopard (sim, 4 placas gráficas; cerca de 15.000 pixels de largura!). Estou configurando uma demonstração que usa 8 janelas do navegador Chrome com tela cheia, cada uma apontando para uma URL diferente. É uma dor na bunda para fazer isso manualmente toda vez que o computador é reiniciado.

Dada essa configuração, quero escrever um script automaticamente:

  1. Abra uma janela do Google Chrome para uma tela específica
  2. Aponte essa janela para um URL específico
  3. Tela cheia dessa janela (o comando F é o atalho do teclado)

Eu não usei o automator e não estou particularmente familiarizado com scripts de shell, mas fiquei me perguntando se havia alguma sugestão interessante da multidão.

Atualização: Mesmo se eu precisar usar o Automator para a funcionalidade de alto nível, estou esperando uma maneira de acionar o script a partir de uma linha de comando / script. Eu gostaria de poder ativar esta demonstração remotamente a partir de um shell, se necessário.

    
por slifty 13.07.2011 / 20:19

1 resposta

8

Eu descobri!

O Applescript é um ótimo recurso, e o chrome tem um dicionário (você pode visualizá-lo no "Editor de Applescript", selecionar "Abrir dicionário" e encontrar o Chrome na lista).

O 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

O script faz o seguinte:

  1. Ative o Chrome (abra-o ou, se estiver aberto, faça o foco)
  2. Feche as janelas abertas do navegador
  3. Crie [screenCount] janelas do navegador, abrindo-as em uma coordenada específica (os dois primeiros termos dos {limites} são x, y da parte superior esquerda. Os segundos dois termos dos {limites} são x, y do canto inferior direito)
  4. Após a abertura de cada janela do navegador, envie um comando "tela cheia" (Command + Shift + F)
  5. Depois que cada janela do navegador estiver totalmente selecionada, defina o URL para o local desejado.

Lembre-se de que meus URLs se encaixam em uma fórmula específica (por exemplo, link ), por isso foi fácil gerá-los dinamicamente. Para qualquer pessoa com necessidades semelhantes aleatórias, você pode usar isso como ponto de partida.

Por fim, quanto ao requisito do terminal, você pode executar o applescript no terminal usando a seguinte linha:

osascript [nome do script]

    
por 15.07.2011 / 00:06