headed ブラウザでの手動ログイン取得は「ブラウザ閉鎖」でなく「ターミナルEnter」で完了検知する
認証
Playwright
ブラウザ自動化
知識
判断
Playwright で認証済み storageState を対話的に取得するコマンド(例: login サブコマンド)を作るとき、完了検知にブラウザのクローズをトリガーにする方式は成立しない。ブラウザを閉じた時点でコンテキストが破棄され context.storageState() を呼べなくなるため。代わりに headed ブラウザを開いて手動ログインさせ、ターミナルで Enter 待ち(readline)してから context.storageState({ path }) を実行して保存する。ブラウザ閉鎖と Enter を Promise.race させ、どちらでも保存を試みてよいが、クローズ側では取得不能な点を許容する。playwright codegen の --save-storage がクローズで保存できるのはプロセス終了を独自フックしているからで、自前実装では真似できない。認証情報をシナリオ/操作 JSON に平文で書く・ログイン操作を録画に映す方式は、機密がファイルや動画に残るため不採用。