使用 AppleScript 在 Google Chrome 标签之间切换

使用 AppleScript 在 Google Chrome 标签之间切换

我希望下面的代码可以完成这个工作,但是没有成功:

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

答案1

事实上,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

答案2

我刚刚完成了这个令人惊叹的脚本,虽然需要进行大量的谷歌搜索和猜测,但它确实有效。

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这里:它让窗口接受击键。

您可以使用快速脚本使其发挥作用(还有许多其他方法)

答案3

我试图编写一个脚本来暂停和播放 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

答案4

Google Chrome 无法编写脚本(也就是说,它无法理解 Apple 事件)。您可以使用辅助功能 API(需要在“系统偏好设置”>“系统”>“通用访问”中打开;请参阅底部的“启用辅助设备访问”复选框)以困难的方式编写脚本;这可以通过系统事件不幸的是,这在一般情况下是极其痛苦的,但类似的事情

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

可能就足够了。如果没有,那么你需要明确地从小部件树中挖出标签元素;苹果有一些示例代码可以帮助您找到 UI 元素。

相关内容