Переключение между вкладками Google Chrome с помощью AppleScript

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

--Only the window is brought into focus
tell application "Google Chrome"
    activate tab 1 of window 1
end tell
10
задан Wuffers
17.01.2023 12:04 Количество просмотров материала 3129
Распечатать страницу

4 ответа

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
10
отвечен Daniel Beck 2023-01-18 19:52

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

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 чтобы сделать эту работу (и есть много других методов, тоже)

2
отвечен Dan Rosenstark 2023-01-18 22:09

Я пытался написать скрипт для паузы и воспроизведения 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
1
отвечен user216409 2023-01-19 00:26

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

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

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

0
отвечен geekosaur 2023-01-19 02:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх