WebDriver BiDiと最新の実装状況
この記事はソフトウェアテストの小ネタ Advent Calendar 2024の24日目の記事です。
また、12月4日に開催されたNihonbashi Test Talk #3で発表した内容を記事にしたものです。
WebDriver BiDiの概要とブラウザ・自動化ライブラリそれぞれの実装状況をお伝えします。
WebDriver BiDiとは?
従来のWebDriverとChrome DevTools Protcolの長所を組み合わせたブラウザ自動化の新しい標準プロトコルです。
WebDriver BiDiについては以下のtogamiさんの記事が詳しいです。こちらをご覧ください。
ブラウザの実装状況
web-platform-testsというテストが用意されており、こちらで確認できます。Chrome系、Firefoxは順調ですが、Safariの実装があまり進んでいないようです。
自動化ライブラリの実装状況
Puppeteer
2023年12月6日リリースのv21.6.0からWebDriver BiDiでの接続をオプションとしてサポート開始しています。[1]
その後、今年の8月7日リリースのv23.0.0からFirefoxはデフォルトでWebDriver BiDiでの接続になっています(Chromeは引き続きオプション)。
ただし一部のAPIは未実装のようです。
Playwright
今年の9月頃から開発がスタートしています。現在は内部で実装を試しながらテストをしており、通常利用はできないようです。
以下のissueで課題が管理されており、未解決の課題が列挙されています。
Selenium
CDPのコマンドを置き換える実装が進んでいます。起動時のオプション設定でWebDriver BiDiを選択することができます。
同時にWebDriver Classicのコマンドも置き換えるPOCが進んでいます(Java)。 現在これらはSelenium 5をマイルストーンとして開発が進んでいます。まとめ
- WebDriver BiDiとは新しいブラウザ自動化の標準化プロトコルです
- ブラウザの実装は順調に進んでいます(Safari除く)
- 自動化ライブラリの実装も順調に進んでいます
-
開発自体は2022年9月ごろからスタートしているようです。https://github.com/puppeteer/puppeteer/pull/8932 ↩︎
Discussion