共有ブラウザで Playwright の connectOverCDP が止まる時は目的タブに直接 CDP で繋ぐ
重いタブがある常駐Chromeで attach がハングする原因と、page ソケット直結で読み書き・保存・読み戻しする手順
約5.8万トークンの節約 (API料金換算で約86円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「共有ブラウザで Playwright の connectOverCDP が止まる時は目的タブに直接 CDP で繋ぐ」は、データ収集カテゴリのAI指示書(MDファイル)です。重いタブがある常駐Chromeで attach がハングする原因と、page ソケット直結で読み書き・保存・読み戻しする手順この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約5.8万トークン(API料金換算で約86円)・96%のトークンを節約できます。
- カテゴリ
- データ収集
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約6万トークン
- この巻物使用時
- 約2,500トークン
- 節約量
- 約5.8万トークン (約86円)
- 更新日
- 2026-10-16
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/playwright-connectovercdp-cdp/raw を読み込んで、この指示書どおりに実装して"
中身
共有ブラウザで Playwright の connectOverCDP が止まる時は、目的のタブに直接 CDP で繋ぐ
症状
ログイン済みの常駐 Chrome(--remote-debugging-port=<PORT>)に chromium.connectOverCDP('http://127.0.0.1:<PORT>') すると、
ログに <ws connected> まで出たあと、タイムアウトまで何も起きない。curl http://127.0.0.1:<PORT>/json/version は正常に返る。
原因
同じ窓に重いタブ(Web メール・ビデオ会議の iframe・service worker が多いページ)があると、Playwright は 全ターゲットへの attach を待ち続けて戻ってこない。ブラウザ自体は生きている。
やってはいけないこと
- 他人・別用途のタブを閉じる(常駐窓ごと壊れる・ログインが切れる)
- ブラウザを再起動する
回避手順(Node 22+ の組み込み WebSocket だけで動く)
GET http://127.0.0.1:<PORT>/json/listからtype==='page'で目的の URL のタブを選ぶ。- その
webSocketDebuggerUrl(/devtools/page/<id>)にnew WebSocket()で直接繋ぐ。 {id, method, params}を送り、同じ id の応答を待つ小さな send 関数を作る。Page.navigate→ 数秒待つ →Runtime.evaluate(returnByValue:true)で DOM を読む・操作する。- React 等の入力欄は
el.value = xでは反映されない。Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,'value').set.call(el, x)の後にinputとchangeイベントを bubbles:true で発火する。 - 保存ボタンを click → 再度
Page.navigateで開き直し、値を読み戻して一致を判定する(保存成功表示では判定しない)。 - スクショは
Page.captureScreenshotの base64 を書き出す。
判定の注意
- 保存ボタンが見つからない/disabled のままなら、文字数上限などの入力検証に引っかかっている(エラー表示が出ないことがある)。
- 多言語の欄が並ぶ編集画面では、翻訳欄は自動で直らないことがある。全欄を読み出してから置換対象を数える。
- 読み戻しの出力は途中で切らずに全文を保存する(切ると「どこまで直ったか」が判定できない)。
よくある質問
+「共有ブラウザで Playwright の connectOverCDP が止まる時は目的タブに直接 CDP で繋ぐ」とは何ですか?
重いタブがある常駐Chromeで attach がハングする原因と、page ソケット直結で読み書き・保存・読み戻しする手順
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約6万トークンかかりますが、この巻物を使えば約2,500トークンで済みます。差し引き約5.8万トークン(API料金換算で約86円)・96%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
定期スクレイピング→Googleスプレッドシート自動集計MD
競合価格・在庫・ランキングなどを毎日自動取得してスプレッドシートに蓄積するバッチを AI に作らせる指示書。robots.txt 尊重・レート制限・差分検知のベストプラクティス込み。
Androidアプリの通知をローカルPCへ取り込む(公式API非対応のチャット向け)
公式APIが無いチャットサービスの投稿を、Android通知経由で手元PCに集める指示書。着手前に『その通知が本当に発生するか』をADBの通知履歴で検証する手順、fail-closedなallowlist設計、個人名を残さない診断ログ、LLM要約の壊れ方と対策までを含む。
CI でだけ落ちるスクレイパの直し方 — WAF/bot判定を疑い、診断→自動復旧まで入れる
定期スクレイパが CI でだけ失敗しローカルでは成功する時の診断手順。失敗履歴の数え方、cookie 名で防御レイヤを特定する診断 artifact の作り方、セッション再作成リトライと部分成功の扱い、そして『IP ベースのブロックにリトライは効かないので実行場所を変える』という実測結論まで。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア