TypeScript(NodeJS)

Puppeteerでold Headless deprecation warningが出た時の対処法

記事内に商品プロモーションを含む場合があります

Puppeteer を実行していて、いつの日か以下の警告が出ていることに気付く。

どうやら近いうちに、「headless: true」の設定がデフォルトで新しいヘッドレスモードになるとのこと。

2023 年の 2 月くらいから警告が出ていたのでしょうか。

この警告は、将来的には意図しない挙動になったり、サポートされなくなることが予想されるため、早めに対処しておくのがベターですね。

今回はこの警告が出なくなるような対応をしていきます。

警告の原因

Chrome のヘッドレスモードが大幅に改善されたことと、「headless=new」が導入されたことがトリガーで出力されるようになったようですね。

新しいものを選択しようが、古いものを選択しようが、こだわりがなければ放置でもいいと思うのですが、警告が出るのは気持ち悪い。

警告の対応

ということで Puppeteer の場合は、以下のサンプルコードが提供されています。

launch のコンストラクタに、headless を指定するようですね。

headlessの設定値挙動
true(default)enables old Headless
newenables new Headless
falseenables “headful” mode

では、headless に new を指定してみましょう。

想定通り、冒頭の警告が出力されなくなりました。

まとめ

ヘッドレスモードの警告について紹介してきました。

Selenium やコマンドラインでの操作でも似たようなものですが、Puppeteer のケースも無事に解決。

GitHub Actions など CI で定期実行させているような処理は、エラーの監視はしているものの警告は見逃しがちですよね。

今回は手動実行で気付けたものの、やはりログの監視はもう少し検討してみたいところです。