LoginSignup
6
2

More than 3 years have passed since last update.

今更ながらPuppeteerのVersionが2.1になって変わったこと

Posted at

はじめに

Puppeteerのメジャーバーションが2020/01/28に2.1にアップデートされました。すでに二ヶ月が経過し、Playwrightという新たなライブラリも登場しましたが、この記事では主な変更点について書いています。

Puppeteerとは

Node.jsでHeadless Chromeを操作するライブラリです。Chrome DevTools(開発者ツール)を使って操作しています。
GoogleChromeチームが作成・公開しています。

リリースノート

変更点はここに書いてあるので、公式を読む場合はこちらから
https://github.com/puppeteer/puppeteer/releases/tag/v2.1.0

変更点

公式のFirefoxがサポートされました。(ただしまだ実験的な機能)

実はv2.1より前から、PuppeteerでFirefoxを操作する機能は実験的に組み込まれており、Puppeteerのソースコードの中で puppeteer-firefox というライブラリが存在していました。そしてこれは、npmパッケージとしても公開されています。
https://www.npmjs.com/package/puppeteer-firefox
※現在はdeprecatedになっています。

PuppeteerはChrome DevTools Protocol(CDP)を使って、Chromeを操作しています。FirefoxにはCDPは存在しないのにどうやって操作しているかというと、Puppeteerの開発チームによって Juggler という、Firefoxのリモートデバッグツールを開発しサポートして再現していました。
https://github.com/puppeteer/juggler
※現在はdeprecatedになっています。

これは、Firefoxにカスタムパッチを当てて実現していました。つまり、Mozilla公式から提供されているFirefoxではありませんでした。
Puppeteer v2.1では、このJugglerは使われていません。Puppeteerの開発チームとMozillaが協議した結果、Firefoxにカスタムパッチを当てて開発を継続することは困難であると判断され、Mozillaと stock をサポートしてもらいMozillaと協力して開発を行っています。
※stockは公開されていないみたいです。調べても出てこなかった。

Puppeteer開発チームは、Safariのような別のブラウザベンダが開発しているブラウザにPuppeteerをサポートするために協力、クロスブラウザコマンドを実行するための調査を続けていくようです。

といった内容が、READMEのこの部分に追加されています。
https://github.com/puppeteer/puppeteer#q-what-is-the-status-of-cross-browser-support

あと、Chroniumのバージョンが80になりました

まとめ

Playwrightも複数のブラウザに対応していますが、Puppeteerも今後対応を続けていく予定で、かつブラウザベンダが提供しているブラウザで動作するよう(WebkitではなくSafariといった)活動を続けていくようです。Playwrightとの棲み分けが進んでいくかもしれないです。
どちらが生き残るかではなく、どちらにも注目して使っていくことになるんじゃないかと予想しています。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2