2011-09-24 4 views
10

ブラウザで開いたタブの一覧をのプログラムで取得する方法はありますか?インデックスによる方法はありますか?プログラムで開いているブラウザのタブのリスト

たとえば、Google Chromeは2つのタブで開いているとします。プログラムで
、ライン何かのように:

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

(:HWNDは、全体的なクロームインスタンスとtabs_listためのウィンドウへのハンドルです

tabs_list = list_tabs(hwnd) 

...のような辞書何かがあります...またはURLの代わりにウィンドウのタイトルで)

もしそうなら、それらのうちの1つにフォーカスを移すことは、キーボードコマンド、Ctrl-1のようなコントロール(Ctrl)またはcontロール2。


後で追加編集を明らかにする手助けしようとする:ピクチャーすでにローカルで実行しているのwxPythonのアプリの中から、同じ箱にクロームの特定のインスタンスをアクティブにする方法を知っている地元のwxPythonのアプリ、およびそのブラウザのインス​​タンスに複数のタブが開いていて、特定のタブにフォーカスがあることを確認したい場合、表示されているWebページとやりとりすることができます(例えばCTRL-A CTRL-Cを使用してコンテンツを取得する)。この質問は、すでに知られているキーボードコマンドを発行することではなく、可能な場合は開いているタブのリストを取得する方法です。ありがとうございます。

+0

プラットフォーム(OS)を知ることは本当に役立ちます。私はhwndからWindowsを推測していますが、この詳細を追加すること(および適切なタグ付け)は、あなたに答えを与える上で不可欠です。 –

+0

OSを指定しなかったのは、クロスプラットフォームアプリケーションを開発することですが、Windowsを始めとするアプリケーションを制限する必要がある場合は、開発することが目的です。しかし、実際にMac OS Xの例とPythonを使ったOLEオートメーションのヒントを感謝します。 – gseattle

答えて

7

は、ターゲットOSのわからないが、あなたは、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オートメーションを調べることになるでしょう。

+0

優秀、ありがとう。 – gseattle

2

これはできません。最初にあなたはどのアプリを開発しているのか分からないが、ウェブサイトバックエンドのためにPythonを使用していれば、それは単なるサーバー側の言語であり、ブラウザが何をしているのかわからない。そして、JavaScriptのようなクライアントサイドの言語では、これが可能であれば重大なセキュリティとプライバシーの問題のように思われるので、私はそれが可能だとは思わない。

編集:Chromeプラグインを開発している場合、それはまったく別の話かもしれませんが、Chrome APIに向かい、タグ付けは間違っています。「python」自体ではできません。

+0

すべてのクライアント側。 – gseattle

+0

主にPython。元の質問に追加された注記を参照してください。私は、Pythonがctypes、win32apiなどのモジュールを使ってWindows(たとえば)APIを呼び出すことができるので、Pythonがそれを行うことができないとは必ずしも思っていません。 – gseattle

+0

私は彼がデスクトップアプリケーションについて話していたと思います。 – rattray

関連する問題