Minggu lalu, bersama dengan BrowserStack, kami mengumumkan bahwa WebDriver BiDi menjadi siap produksi di BrowserStack. Minggu ini, musim panas WebDriver BiDi berlanjut dengan Firefox 129 dan Puppeteer 23 yang masing-masing mendapatkan dukungan siap produksi untuk WebDriver BiDi.
Mozilla telah menjadi kolaborator yang kuat di WebDriver BiDi selama lebih dari empat tahun sekarang, awalnya membantu membentuk standar baru, lalu menerapkannya secara bertahap di Firefox, mendokumentasikan progres mereka dengan rapi melalui Newsletter WebDriver Firefox.
Dengan WebDriver BiDi yang kini siap produksi di Firefox, Puppeteer, mulai versi 23, menawarkan dukungan stabil untuk Firefox melalui WebDriver BiDi. Hal ini memungkinkan Anda mengotomatiskan Firefox dengan API ringkas yang sama seperti Chrome. Dukungan Puppeteer untuk Protokol DevTools Chrome (CDP) tidak berubah.
Firefox, CDP, dan Puppeteer
Puppeteer adalah alat andal bagi developer untuk mengotomatiskan browser berbasis Chromium menggunakan Chrome DevTools Protocol, yang juga dikenal sebagai CDP. Pada tahun 2019, Puppeteer mendapatkan dukungan eksperimental untuk Firefox.
Agar ini berfungsi, Mozilla menerapkan dan mengelola subset CDP di Firefox. Solusi ini memungkinkan Firefox diotomatiskan dengan Puppeteer API, tetapi ada ketentuannya:
- Seperti namanya, CDP digunakan oleh DevTools Chrome dan perlu berubah sesuai dengan persyaratan DevTools.
- CDP tidak distandardisasi dalam spesifikasi publik bersama dan mempertahankannya di Firefox memerlukan komunikasi dan upaya yang stabil.
- Karena Firefox hanya menerapkan sebagian CDP, Puppeteer tidak pernah dapat menjamin API lengkapnya berfungsi dengan Firefox, sehingga membingungkan pengguna.
Meskipun kami senang dapat mempertahankan dukungan ini bersama Mozilla selama beberapa tahun terakhir, kami selalu tahu bahwa ini bukan solusi permanen. Dengan membangun kemitraan ini, dan termasuk vendor alat dan browser utama lainnya, bersama-sama kami membuat WebDriver BiDi.
Kerja sama tim akan mewujudkan impian
Tim Firefox telah bekerja keras untuk menerapkan WebDriver BiDi di Firefox. Pada saat yang sama, tim Puppeteer telah memperluas dukungan WebDriver BiDi di seluruh Puppeteer API. Sasaran yang diperjuangkan kedua tim adalah membuat setiap API yang diperlukan untuk kasus penggunaan otomatisasi produksi tersedia menggunakan WebDriver BiDi di Puppeteer, yang memastikan dukungan di Chrome dan Firefox.

Hal ini memungkinkan pengguna Puppeteer memilih Firefox atau Chrome untuk otomatisasi mereka,
dengan menentukan kunci konfigurasi browser
saat meluncurkan instance
Puppeteer.
import puppeteer from 'puppeteer';
const firefoxBrowser = await puppeteer.launch({
browser: 'firefox', // WebDriver BiDi is used by default in Firefox.
});
const page = await firefoxBrowser.newPage();
...
await firefoxBrowser.close();
const chromeBrowser = await puppeteer.launch({
browser: 'chrome',
protocol: 'webDriverBiDi', // CDP would be used by default for Chrome.
});
const page = await chromeBrowser.newPage();
...
await chromeBrowser.close();
Untuk mempelajari lebih lanjut apa saja yang baru di Firefox 129 dan pekerjaan Mozilla di WebDriver BiDi, lihat postingan blog Mozilla Hacks terkait.
Dukungan CDP di masa mendatang
Cuplikan kode sebelumnya menunjukkan bahwa untuk mengotomatiskan Chrome menggunakan
WebDriver BiDi dengan Puppeteer, Anda harus menetapkan protocol
secara eksplisit ke
webDriverBiDi
. Hal ini karena untuk Chrome, Puppeteer akan tetap menetapkan default ke
CDP—agar tidak merusak otomatisasi yang ada, tetapi juga untuk terus mendukung otomatisasi
yang dikhususkan untuk fitur Chrome.
Dukungan CDP di Firefox tidak digunakan lagi mulai Firefox 129 dan dijadwalkan untuk dihapus pada akhir 2024. Jika Anda sudah memiliki otomatisasi yang mengandalkan dukungan CDP di Firefox, sebaiknya migrasikan ke WebDriver BiDi. Jika tidak memungkinkan, hubungi dev-webdriver@mozilla.org dengan kasus penggunaan Anda.