在Chrome中设置有效标签并将其置于最前面

时间:2014-08-14 17:23:59

标签: python macos google-chrome py-appscript

我想使用Python和appscript将给定的Google标签设置为最重要的标签。我可以这样获得标签:

from appscript import *
chrome = app('Google Chrome')
tab_title = 'New York Times'
win_tabs = []
for win in chrome.windows.get():
    win_tabs.append([])
    tnames = map(lambda x: x.title(), win.tabs())
    rel_t = [t for t in win.tabs() if tab_title in t.title()]
    if len(rel_t):
        rel_t = rel_t[0]
        break

现在,我想将该标签设置为最前面的窗口。有任何想法吗?我怀疑我必须使用像

这样的东西
se = app('System Events')

从那里管理事情,但我不知道。

1 个答案:

答案 0 :(得分:0)

您可以使用win.active_tab_index.set(number)更改有效标签。不需要系统事件。但是tab对象没有引用它自己的索引,所以将它改为this(编辑:重写以避免错误)

def activate_chrome_tab(title):
    for window in chrome.windows.get():
        for index, tab in enumerate(window.tabs()):
            if title in tab.title():
                window.active_tab_index.set(index + 1)
                window.activate()
                window.index.set(1)
                return

activate_chrome_tab(tab_title)

(如果有多个窗口具有相同的标签名称,它将依次关注每个窗口 - 这就是原始的

(资料来源:Chrome applescript dictionary) (但请注意appscript is not maintained