全然 Puppeteer よくわかってないけどメモ書いておきます。

先にまとめ

といってもこれが全てだけど。

  • page._client は非公開 API なので避ける
  • await page.target().createCDPSession() で client オブジェクト取れる
  • CDP = Chrome DevTools Protocol

例

Before:

await page._client.send('Emulation.clearDeviceMetricsOverride')

After:

const client = await page.target().createCDPSession();
await client.send('Emulation.clearDeviceMetricsOverride')

おしまい

人のコード見てて page._client って何かなとか調べてるうちに DefinitelyTyped の 2018 年の issue を見つけました。なんで閉じないんだろ?

もっかい言うけど Puppeteer 素人です。CDP も知らない。

参考