Switch between Google Chrome Tabs using AppleScript

Google Chrome is, in fact, scriptable.

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

Works like a charm for version 10.0.648.204.


While it would be nice to do something like the following:

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

It's not possible, since active tab is a read-only property. You'd need to loop over all a window's tabs to find the index of the one you want by querying each tab's title, and then set the 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

I just finished this amazing script, which required a lot of googling and guessing, but it works.

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

The do shell script is from here: it gets the Window to accept keystrokes.

You can use FastScripts to make this work (and there are many other methods, too)