Selenium + WebDriver で起動済みのブラウザを操作したい場合は、操作対象のブラウザを、予めリモートデバッグ用のポートを開いた状態で起動しておく必要があります。(下記のオプションを付けてブラウザを起動する)
--remote-debugging-port=9222
これは、Chrome では上手く動作するのですが、Edge では動作しないことがあります。いろいろな要因が考えられますが、個人的にハマったパターンとして、「Edge のプロセスが死んでいない状態で、新規に Edge を起動しても、デバッグポートが開かない」ことがありました。
対処法は主に2つ。
- タスクマネージャーから Edge プロセスを終了させる
- Edge のオプションを開き(Edge のアドレスバーで
edge://settings/system
を入力)、下記2つをオフにして Edge を終了する- スタートアップ ブースト
- Microsoft Edge が終了してもバック グラウンドの拡張機能およびアプリの実行を続行する
Chrome はブラウザを終了させた場合にプロセスが残ることが少ない(?)ので、あまりハマる人がいないのかもしれません。ちなみに Chrome の場合も先に起動している Chrome があれば、いったん終了させたほうが良さそうです。