Playwright の Request.frame は常に利用できる前提にしない
テスト
Service Worker
Playwright
ブラウザ自動化
知識
運用
Playwright の Request.frame は常に Frame を返すわけではない。Service Worker 起源のリクエストと、対応する Frame の作成前に発行された navigation request では例外を投げる。Response の frame 取得も内部的に同じ Request に依存するため、BrowserContext の response や requestfailed リスナーで無条件に frame から Page URL を取ると、監視処理自身がプロセスを不安定にする。
コンテキスト全体のネットワーク監視では、まず Request の Service Worker 起源・navigation request 条件を判定し、Frame がない場合の URL を空値や別の安全な情報へフォールバックする。イベントハンドラ内で同期例外を外へ漏らさないことも境界条件にする。
回帰テストでは正常な Frame だけを返すモックに限定せず、Service Worker 起源を表すケースと frame 取得が例外になるケースを与え、issue の収集継続とプロセス生存を確認する。これは初期 Page 生成前にリスナーを登録する構成ほど重要になる。