CDP 接続エラーメッセージの診断と解決
自動化スクリプト(Selenium, Puppeteer, Playwright)を実行する際、Chrome DevTools Protocol (CDP) への接続に失敗することがあります。主なエラーの原因と解決策を以下にまとめました。
1. よくあるエラーメッセージ
- "Target closed" / "Connection refused": ブラウザが予期せず終了したか、指定されたポートでリスニングしていません。
- "WebSocket error": デバッグ用 WebSocket への接続がネットワーク設定やファイアウォールによってブロックされています。
2. 主な原因と解決策
原因 A: デバッグポートの競合
他のプログラムが同じポート(デフォルトは 9222 付近)を既に使用している場合、Mbbrowser はそのポートでデバッグを待機できません。
- 解決策: クライアントの「設定」でデバッグポートを変更するか、競合しているプロセスを終了させてください。
原因 B: ファイアウォールによるブロック
Windows ファイアウォールやセキュリティソフトが mbbrowser.exe や chrome.exe のローカル通信をブロックしている場合があります。
- 解決策:
mbbrowser.exeおよびchrome.exeをファイアウォールの許可リストに追加してください。
原因 C: ブラウザの異常終了
スクリプトがページを読み込む前にブラウザがクラッシュした場合に発生します。
- 解決策: プロキシ設定が正しいか、メモリが不足していないかを確認してください。
3. 診断手順
- 手動で環境を起動し、正常にページが表示されるか確認します。
- ブラウザ上部のデバッグメッセージ(「自動テストソフトウェアによって制御されています」など)が表示されているか確認します。
- コマンドプロンプトで
netstat -ano | findstr :[ポート番号]を実行し、ポートが待機状態か確認します。
