Список открытых вкладок браузера программно

Есть ли способ программно получить список открытых вкладок в браузере по индексу?

Например, предположим, что Google Chrome открыт с двумя вкладками.
В программе строка вроде:

tabs_list = list_tabs(hwnd)

... где hwnd - это дескриптор окна для общего экземпляра Chrome, а tabs_list - это словарь:

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

(... или, возможно, по названию окна вместо url)

Если это так, то приведение фокуса к одному из них может быть возможным из Python script с помощью команд клавиатуры, control- (CTRL-), таких как control-1 или control-2.


Впоследствии добавлено изменение, чтобы попытаться помочь выяснить: Рисунок локального приложения wxPython, где вы уже знаете, как активировать данный экземпляр Chrome в том же окне из вашего приложения wxPython, работающего локально, и этот экземпляр браузера имеет несколько вкладок откройте, и теперь вы хотите убедиться в том, что определенная вкладка имеет фокус, чтобы иметь возможность взаимодействовать с этой отображаемой веб-страницей (возможно, используя CTRL-A CTRL-C, например, для сбора ее содержимого). Этот вопрос заключается не в выдаче команд клавиатуры, которые уже известны, а в том, как получить список открытых вкладок, если это возможно, спасибо.

Ответ 1

Пока вы не уверены в своей целевой ОС, вы можете сделать это в Mac OS X:

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

В Windows вы захотите посмотреть в OLE Automation с помощью Python.

Ответ 2

Невозможно. Сначала вы не заметили, какое приложение вы разрабатываете, но если вы используете python для бэкэнд веб-сайта - тогда это просто серверный язык и не знает, что такое "браузер" - сервер выводит браузер и все. И я не верю, что это возможно на клиентском языке, таком как javascript, так как это кажется серьезной проблемой безопасности и конфиденциальности, если это было возможно.

Изменить: если вы разрабатываете плагин Chrome, то можете сказать, что это может быть совсем другая история, но затем она идет в сторону API Chrome, и ваша теги неверны, поскольку сам "python" не может этого сделать.