在Chrome中设置活动标签并将其置于最前面
我想用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 个回答
2
你可以使用 win.active_tab_index.set(number)
来改变当前活动的标签页。这样做不需要系统事件。不过,tab
对象本身并没有保存它自己索引的方式,所以需要把它改成这样(编辑:重写以避免一个错误)
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 苹果脚本字典)
(但请注意,appscript 并没有在维护)