ブラウザテスト自動化のPuppeteerがFirefox正式サポート、新標準のWebDriver BiDi対応で。これでChromeとFirefoxに両方対応に
今回は「ブラウザテスト自動化のPuppeteerがFirefox正式サポート、新標準のWebDriver BiDi対応で。これでChromeとFirefoxに両方対応に」についてご紹介します。
関連ワード (仕組、出来上、双方向通信等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
MozillaとGoogleは、ブラウザを用いたテスト自動化のためのフレームワーク「Puppeteer」がFirefoxを正式にサポートしたことを発表しました。
PuppeteerはGoogleが開発しており、Chrome DevTools Protocol(CDP)を通じてChromeをリモートコントロールすることでテスト自動化を実現しています。
CDPはWebSocketによる高速な双方向通信、コンソール上のメッセージを取得するなど低レイヤのAPIにも対応するなど、より柔軟かつ高度なテスト自動化を実現できます。
しかしCDPはChromium系のWebブラウザしか実装されていません。FirefoxはCDPのサブセットを実験的に実装してPuppeteerから操作可能ですが、あくまでも非公式なサポートにとどまっていました。
新しい標準のWebDriver BiDiをPuppeteerとFirefoxがサポート
一方で、テスト自動化のための標準として現在ほとんどのWebブラウザが実装している仕組みとして「WebDriver」があります。
しかしWebDriverは、Chrome DevTools Protocolが備えているような低レイヤのAPIを十分に備えておらず、またレンダリングが終了するタイミングが分からずテストスクリプト側でポーリングを行うなどテクニックが求められる場面がありました。
Chrome DevTools Protocolのような多くの優れた機能を備えつつ、WebDriverのように標準化されたクロスブラウザ対応のテスト自動化仕様として、現在W3Cで策定中なのが「WebDriver BiDi」です。
Puppeteerは今年(2024年)1月、WebDriver BiDiへの対応開始を発表。そしてFirefox 129とPuppeteerのリリース23でこのWebDriver BiDiの実装が出来上がったことで、PuppeteerによるFirefoxの正式サポートとなりました。ChromeもWebDriver BiDiをサポートしました。
参考:Puppeteer、テスト自動化の次世代標準「WebDriver BiDi」に対応開始。Firefoxもサポートへ
PuppeteerによるCDPのサポートは継続
Puppeteerは今後もCDPのサポートを継続し、Chromium系のブラウザとはデフォルトではCDPで通信を行い(明示的にWebDriver BiDiを指定することも可能)、それ以外のブラウザに対してはWeb標準のWebDriver BiDiを用いると説明されています。