5

Я надеялся, что следующий код сработает, но без сигары:

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

4 ответа4

10

Google Chrome, на самом деле, поддерживает скрипты.

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

Работает как брелок для версии 10.0.648.204.


Хотя было бы неплохо сделать что-то вроде следующего:

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

Это невозможно, поскольку active tab доступна только для чтения. Вам нужно было бы перебрать все вкладки окна, чтобы найти индекс нужной вам, выполнив запрос к названию каждой вкладки, а затем установить 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
3

Я только что закончил этот удивительный сценарий, который требовал много гуглить и гадать, но он работает.

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

Сценарий do shell script находится здесь: он получает окно для принятия нажатий клавиш.

Вы можете использовать FastScripts, чтобы сделать эту работу (и есть много других методов)

1

Я пытался написать скрипт для приостановки и воспроизведения Netflix, и приведенный выше код был хорошей основой для поиска по вкладкам. "чей индекс равен 1" продолжал выдавать ошибки компилятора на моем Mac Mini 10.8.3, поэтому, основываясь на коде http://en.blog.guylhem.net/post/9835498027/google-chrome-next-tab-in- AppleScript , я просто удалил ссылку целиком (который работал для моих целей)

Сценарий в основном активирует окно браузера, просматривает вкладки до тех пор, пока не найдет тот, который называется "Netflix", и отправит ему код клавиши 49 (пробел).

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
0

Google Chrome не поддерживает сценарии (то есть он не понимает Apple Events). Вы можете написать его сложным способом с помощью API-интерфейса Accessibility (который необходимо включить в Системных настройках> Система> Универсальный доступ; см. Флажок "Включить доступ для вспомогательных устройств" внизу); это делается с помощью набора системных процессов Processes. К сожалению, это крайне болезненно в общем случае, но что-то вроде

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

может быть достаточно. Если этого не произойдет, вам нужно явно вырыть элемент tab из дерева виджетов; У Apple есть пример кода, который может помочь вам найти элементы пользовательского интерфейса.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .