🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

14782閲覧

Python selenium 既に起動済みのchormeを操作したいです。

grapefruit1911

総合スコア16

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/01/24 02:14

編集2021/01/24 02:25

新規でchorme操作は問題なくできるのですが、
既に起動済みのウィンドウの操作を行いたく、

イメージですが、タイトルを指定して、
起動済みのウィンドウ、タブをタイトルが一致するまで順番に回して、
条件に一致したタブのウィンドウハンドルを取得する。

おそらく問題なくできる処理かと思うのですが、
サンプルコードがなく、書けません。
詳しい方サンプルソースをご提供いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Chromeを起動する時に、コマンドラインオプションに--remote-debugging-port=番号を付けて起動しておけば、プログラムからのSelenium起動時に、

Python

1options = Options() 2options.add_experimental_option("debuggerAddress", "127.0.0.1:番号") 3 4driver = webdriver.Chrome(~~,options=options)

で、そのChromeに接続できます。

--remote-debugging-port=番号を付けずに起動してしまった物についてはおそらく無理だと思います。

投稿2021/01/24 04:32

otn

総合スコア85893

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

grapefruit1911

2021/01/24 06:04

ご教示いありがとうございます。 さっそく、chromeショートカットに--remote-debugging-port=9222を追記で起動して 接続を試みたのですが、次のエラーが出てしまいます。 該当ポートはファイアーウォールも許可したので、問題ないと思っています。 Message: unknown error: cannot connect to chrome at 127.0.0.1:9222 何が考えられますでしょうか。
otn

2021/01/24 06:11

Chromeがそのポートで待っているか、確認しましょう。 Windowsなら、管理者権限のコマンドプロンプトで、 netstat -ab Linuxなら、rootで、 lsof -i :9222
grapefruit1911

2021/01/24 09:16

できました~ありがとうございました!! 提示いただいた処理でやりたいことはほぼできるのですが、一部厳しいものがございます。 VBAで組んだツールで条件一致までウィンドウを探しており、こちらの処理を入れ込みたく。 Pythonだと次の処理は厳しいでしょうか。 VBA Set colSh = CreateObject("shell.application") For Each win In colSh.Windows strTemp = "" On Error Resume Next strTemp = win.document.Title On Error GoTo 0 If InStr(strTemp, "ヤフオク") > 0 Then Set objIE = win Exit For End If Next
otn

2021/01/24 09:29

Seleniumを使えば出来ると思いますが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問