以编程方式打开浏览器选项卡列表

时间:2011-09-24 08:09:34

标签: python browser scripting tabs

是否可以通过索引以编程方式获取浏览器中的列表?

例如,假设Google Chrome已打开,有两个标签 在程序中,行如下:

tabs_list = list_tabs(hwnd)

...其中hwnd是整个Chrome实例窗口的句柄,tabs_list是一个字典,如:

[
0 : 'http://stackoverflow.com/',
1 : 'http://www.coolstuffff.com/'
]

(...或者可能是窗口的标题而不是网址)

如果是这样,那么可以通过带有键盘命令的Python脚本,控制 - (CTRL-),如control-1或control-2,将焦点集中到其中一个。


稍后添加的编辑试图帮助澄清:想象一下本地wxPython应用程序,您已经知道如何在本地运行的wxPython应用程序中激活同一个框上的给定Chrome实例,并且该浏览器实例有多个选项卡打开,现在您要确保某个选项卡具有焦点,以便能够与正在显示的网页进行交互(例如,可以使用CTRL-A CTRL-C来获取其内容)。这个问题不是关于发布键盘命令,这是已知的,问题是如何获得打开的选项卡列表,如果可能的话,谢谢。

2 个答案:

答案 0 :(得分:7)

虽然不确定您的目标操作系统,但您可以在Mac OS X上执行此操作:

>>> from appscript import *
>>> map(lambda x: x.title(), app('Google Chrome').windows[0].tabs())
[u'Stack Overflow', u'Google']

在Windows上,您将需要使用Python查看OLE自动化。

答案 1 :(得分:2)

不可能。首先你没有注意到你开发的应用程序,但是如果你使用python作为网站后端 - 那么它只是一种服务器端语言,并且不知道什么是“浏览器” - 服务器输出到浏览器,这就是全部。而且我不相信使用像javascript这样的客户端语言是可能的,因为如果可能的话,这似乎是一个严重的安全和隐私问题。

编辑:如果你正在开发一个Chrome插件,可以说这可能是一个完全不同的故事 - 但它会转向Chrome API而你的标记是错误的,因为“python”本身不能这样做。