Alternar entre as guias do Google Chrome usando o AppleScript

5

Eu esperava que o código a seguir funcionasse, mas sem charuto:

--Only the window is brought into focus
tell application "Google Chrome"
    activate tab 1 of window 1
end tell
    
por Orion751 27.03.2011 / 20:09

4 respostas

10

O Google Chrome é, na verdade, programável por script.

tell application "Google Chrome" to set active tab index of first window to 3

Funciona como um encanto para a versão 10.0.648.204.

Embora seja bom fazer algo como o seguinte:

tell application "Google Chrome" to set active tab of first window 
    to first tab of the first window whose title is "Super User"

Não é possível, pois active tab é uma propriedade somente leitura. Você precisaria percorrer todas as guias de uma janela para localizar o índice que deseja consultando o título de cada guia e, em seguida, definir o active tab index :

tell application "Google Chrome"
    set i to 0
    repeat with t in (tabs of (first window whose index is 1))
        set i to i + 1
        if title of t is "Super User" then
            set (active tab index of (first window whose index is 1)) to i
        end if
    end repeat
end tell
    
por 27.03.2011 / 21:12
2

Acabei de terminar este script incrível, que exigiu muita pesquisa e adivinhação, mas funciona.

tell application "Google Chrome"
    activate
    repeat with w in (windows)
        set j to 0
        repeat with t in (tabs of w)
            set j to j + 1
            if title of t contains "Workflowy" then
                set (active tab index of w) to j
                set index of w to 1
                tell application "System Events" to tell process "Google Chrome"
                    perform action "AXRaise" of window 1 -- 'set index' doesn't always raise the window
                end tell
                return
            end if
        end repeat
    end repeat
end tell

O do shell script é de aqui : ele recebe a janela para aceitar pressionamentos de teclas.

Você pode usar FastScripts para fazer isso funcionar (e há muitos outros métodos também)

    
por 19.12.2015 / 23:03
1

Eu estava tentando escrever um script para pausar e tocar o Netflix, e o código fornecido acima era um bom framework para pesquisar pelas guias.      "cujo índice é 1" continuou jogando erros do compilador no meu Mac Mini 10.8.3, então, com base no código de link , acabei de remover a referência inteiramente (que funcionou para meus propósitos)

O script basicamente ativa a janela do navegador, percorre as guias até encontrar uma chamada "Netflix" e envia o código de chave 49 (barra de espaço).

tell application "Google Chrome"
    activate
    set i to 0
    repeat with t in (tabs of (first window))
        set i to i + 1
        if title of t is "Netflix" then
            set (active tab index of (first window)) to i
        end if
    end repeat
    tell application "System Events" to key code 49
end tell
    
por 12.04.2013 / 08:03
0

O Google Chrome não é programável (isto é, não compreende os eventos da Apple). Você pode fazer o script da maneira mais difícil usando a API de acessibilidade (que precisa ativar em Preferências do sistema > Sistema > Acesso universal; consulte a caixa de seleção "Ativar acesso para dispositivos auxiliares" na parte inferior); isso é feito através do conjunto de Processos de Eventos do Sistema . Infelizmente, isso é extremamente doloroso no caso geral, mas algo como

tell application "System Events"
    tell application process "Google Chrome"
        click tab 1 of window 1
    end tell
end tell

pode ser suficiente. Se isso não acontecer, você precisará explicitamente extrair o elemento tab da árvore de widgets; A Apple tem alguns código de amostra que podem ajudar você a encontrar Elementos da interface do usuário.

    
por 27.03.2011 / 20:18