Skip to content

アーキテクチャ

このキットは Playwright / Puppeteer と同じく、ブラウザ → ページ(コンテキスト)→ 要素 の層で考えます。

CDP スタック

クラス役割
CDPCore--remote-debugging-pipe ロジックで CDP 送受信
CDPCoreViaWebSocketWebSocket(--remote-debugging-port)ロジックでの CDP 送受信(既存セッション)
CDPBrowserプロセス起動・タブ一覧・ブラウザ単位の ExecuteCDP
CDPContext1 タブ分のナビ・JS・要素検索・イベント
CDPElementクリック・入力・属性・Shadow DOM / iframe
BiDiCDPJsonCDP / BiDi 応答の高速 JSON ビュー

BiDi スタック

クラス役割
WebDriverBiDiCoremapperTab.js(chromium-bidi)を CDP 上に載せ BiDi を中継
WebDriverBiDiModeセッション・タブ・購読・ExecuteBiDi
WebDriverBiDiContext1 browsing context のナビ・jsEval・CDP 変換

BiDi は内部的に CDP パイプ(または WebSocket)の上で動きます。足りない操作は次のどちらかで CDP 実行可能です。

設定シートの位置づけ

ShSetting01_StartBrowser は「exe パス・プロファイル・起動引数等」を読み、上記スタックを組み立てる エントリポイント です。日常利用ではクラスを New せず、Start○○ModeContext を使うのが安全です。

通信経路

PipeルートとWebSocketルートの2種類に対応しております。

  • Pipeルート: --remote-debugging-pipeとして起動します。同一PCで自動化する場合はこれ1択です。
  • WebSocketルート: --remote-debugging-port で起動しているブラウザに接続してから自動化を行います。WebSocket モードでの制御について を参照。

関連

Excel VBA × CDP / WebDriver BiDi