Python 在Chrome中设置活动选项卡并将其置于最前面

Python 在Chrome中设置活动选项卡并将其置于最前面,python,macos,google-chrome,py-appscript,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

我想使用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')

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

您可以使用
win.active\u tab\u index.set(number)
更改活动选项卡。不需要系统事件。但是
选项卡
对象没有对其自身索引的引用,因此将其更改为此(编辑:重写以避免错误)

def激活浏览器选项卡(标题):
对于chrome.windows.get()中的窗口:
对于索引,枚举中的选项卡(window.tabs()):
如果tab.title()中的标题为:
window.active\u tab\u index.set(索引+1)
window.activate()
window.index.set(1)
回来
激活浏览器选项卡(选项卡标题)
(如果有多个窗口具有相同的选项卡名称,它将依次聚焦每个窗口-这就是原始窗口的方式。)

(来源:)
(但请注意)

非常感谢!这也会导致选项卡被带到前台吗?另外,感谢指向Chrome字典的指针!哦,你还想聚焦选项卡所在的窗口。我将更新答案。太棒了!非常感谢你。虽然没有直接关系,但你知道有什么东西可以取代appscript吗?该脚本也会帮助我们这是python的Quartz库,但我发现参考资料相当不透明。我使用了
applescript
,它涉及将AppleScripts作为字符串发送,而不是使用python对象。这取决于PyObjC,首先阅读:@eri:现在10.10终于解决了10.9的applescript AppleScriptObjC集成的混乱,它是通过PyObjC调用AppleScript实际上相当轻松: