Interação automatizada com o Google Chrome


9

Tudo bem SU, eu tenho uma porca divertida para quebrar.

Eu tenho 8 telas configuradas em uma linha, todas conectadas a um G5 robusto com 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 em tela cheia, cada uma apontando para um URL diferente. É difícil fazer isso manualmente sempre que o computador é reiniciado.

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

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

Eu não usei o automator e não estou particularmente familiarizado com scripts de shell, mas queria saber se havia alguma sugestão sofisticada da multidão.

Atualização: Mesmo que eu precise usar o Automator para a funcionalidade de alto nível, espero encontrar uma maneira de disparar 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.


Eu acho que o Automater é um ótimo lugar para começar. Embora eu também não o tenha usado tanto. Eu costumava usar um produto "ovo planta roxo" que você pode ser capaz de usar para isso - Embora eu gostaria de pensar que existem opções muito melhores lá fora ..
James T Snell

Eu acho que a tela específica é o que será difícil de conseguir.
Slhck 13/07/11

Respostas:


8

Eu descobri!

O Applescript é um ótimo recurso, e o chrome possui um dicionário (você pode visualizá-lo no "Applescript Editor" e, em seguida, 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 (o abre ou, se estiver aberto, torna o foco)
  2. Feche todas as janelas abertas do navegador
  3. Crie janelas do navegador [screenCount], abrindo-as em uma coordenada específica (os dois primeiros termos nos {limites} são x, y do canto superior esquerdo. Os dois primeiros termos nos {limites} são x, y do inferior direita)
  4. Após a abertura de cada janela do navegador, envie um comando "tela cheia" (Command + Shift + F)
  5. Após a tela inteira de cada navegador, defina o URL no local desejado.

Lembre-se de que meus URLs se encaixam em uma fórmula específica (por exemplo, http: // localhost: 8000 / # 0 ), por isso foi fácil gerá-los dinamicamente. Para qualquer pessoa com necessidades aleatoriamente semelhantes, 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 [scriptname]

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.