Basculer entre les onglets Google Chrome à l'aide d'AppleScript

J'espérais que le code suivant ferait le travail, mais pas de cigare:

--Only the window is brought into focus tell application "Google Chrome" activate tab 1 of window 1 end tell 

    Google Chrome est, en fait, scriptable.

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

    Fonctionne comme un charme pour la version 10.0.648.204.


    Bien qu'il serait bon de faire quelque chose comme suit:

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

    Ce n'est pas possible, car l' active tab est une propriété en lecture seule. Vous devriez boucler tous les onglets d'une fenêtre pour trouver l'index de celui que vous voulez en interrogeant le titre de chaque onglet, puis définir l' 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 

    Je viens de terminer ce scénario incroyable, qui nécessitait beaucoup de google et de devinettes, mais ça marche.

     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 

    Le do shell script est à partir d' ici : il permet à la fenêtre d'accepter les frappes de touches.

    Vous pouvez utiliser FastScripts pour que cela fonctionne (et il existe de nombreuses autres méthodes aussi)

    Google Chrome n'est pas scriptable (c'est-à-dire qu'il ne comprend pas Apple Events). Vous pouvez le script de manière difficile à l'aide de l'API Accessibilité (que vous devez activer dans Préférences système> Système> Accès universel, consultez la case à cocher "Activer l'accès pour les appareils fonctionnels" en bas); Cela se fait via la suite Processes de System Events . Malheureusement, cela est extrêmement pénible dans le cas général, mais quelque chose comme

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

    Pourrait suffire. Si ce n'est pas le cas, vous devrez creuser explicitement l'élément de tabulation hors de l'arborescence des widgets; Apple dispose d'un exemple de code qui peut vous aider à trouver des éléments UI.

    J'essayais d'écrire un script pour mettre en pause et jouer Netflix, et le code fourni ci-dessus était un bon cadre pour la recherche dans les onglets. "Dont l'indice est 1" a continué à lancer des erreurs de compilation sur mon Mac Mini 10.8.3, donc, en fonction du code de http://en.blog.guylhem.net/post/9835498027/google-chrome-next-tab-in- Applescript , je viens de supprimer entièrement la référence (qui a fonctionné à mes fins)

    Le script active essentiellement la fenêtre du navigateur, passe les onglets jusqu'à ce qu'il trouve un intitulé "Netflix", et envoie le code clé 49 (barre spatiale).

     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