WebDriver BiDi listo para la producción en Firefox, Chrome y Puppeteer

Matthias Rohmer
Matthias Rohmer

La semana pasada, junto con BrowserStack, anunciamos que WebDriver BiDi se convirtió en listos para la producción en BrowserStack. Esta semana, continúa el verano de WebDriver BiDi con Firefox 129 y Puppeteer 23 obtienen compatibilidad lista para producción con WebDriver BiDi.

Mozilla ha sido un sólido colaborador en WebDriver BiDi durante más de cuatro años. lo que, en un principio, ayudaba a dar forma al nuevo estándar y, luego, implementaba gradualmente en Firefox, documentando cuidadosamente su progreso con el boletín informativo de Firefox WebDriver.

Con WebDriver BiDi ahora está listo para la producción en Firefox, Puppeteer, a partir de la versión 23, ofrece compatibilidad estable para Firefox a través de WebDriver BiDi. Esto te permite automatizar Firefox con la misma API concisa que Chrome. Compatibilidad de Puppeteer con Chrome El protocolo de Herramientas para desarrolladores (CDP) no se modifica.

Firefox, CDP y Puppeteer

Puppeteer es una herramienta confiable que permite a los desarrolladores automatizar los navegadores basados en Chromium el protocolo de Herramientas para desarrolladores, también conocido como CDP. En 2019, Puppeteer recibió asistencia experimental para Firefox.

Para que esto funcione, Mozilla implementó y mantuvo un subconjunto de CDP en Firefox. Esta solución permitió que Firefox automatizara con la API de Puppeteer, tenían advertencias:

  • Como su nombre sugiere, las Herramientas para desarrolladores de Chrome usan el CDP y se debe cambiar con los requisitos de Herramientas para desarrolladores.
  • El CDP no está estandarizado en una especificación pública y compartida, y mantenerlo en Firefox requería una comunicación constante y esfuerzo.
  • Debido a que Firefox solo implementó un subconjunto de CDP, Puppeteer nunca pudo garantizar que su API completa funcione con Firefox, lo que crea confusión para los usuarios

Aunque nos complace haber mantenido este apoyo junto con Mozilla para el en los últimos años, siempre supimos que no era una solución permanente. Sobre esto asociada, así como incluidos otros proveedores importantes de navegadores y herramientas, creamos WebDriver BiDi.

El trabajo en equipo hace realidad los sueños

El equipo de Firefox ha estado trabajando con mucho entusiasmo para implementar WebDriver BiDi en Firefox. Al mismo tiempo, el equipo de Puppeteer expandió la compatibilidad con WebDriver BiDi. en la API de Puppeteer. El objetivo por el que trabajaron ambos equipos era hacer que todas las APIs sean obligatorias para los casos de uso de automatización de la producción disponibles con WebDriver BiDi en Puppeteer, lo que garantiza la compatibilidad con Chrome y Firefox.

Panel del equipo compartido que muestra la cantidad de pruebas aprobadas en los últimos meses.
Panel del equipo compartido que muestra la cantidad de pruebas aprobadas en los últimos meses.

Esto permite que los usuarios de Puppeteer seleccionen Firefox o Chrome para sus automatizaciones Para ello, especifica la clave de configuración browser cuando inicies Puppeteer instancia.

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();

Para obtener más información sobre las novedades de Firefox 129 y el trabajo de Mozilla sobre WebDriver, Consulta la entrada de blog de Mozilla Hacks relacionada para BiDi.

Compatibilidad con CDP en el futuro

En el fragmento de código anterior, se muestra que para automatizar Chrome usando WebDriver BiDi con Puppeteer en el que debes configurar protocol de forma explícita webDriverBiDi Esto se debe a que, para Chrome, Puppeteer usará CDP: no para romper las automatizaciones existentes, sino también para seguir admitiendo las automatizaciones especializados en las funciones de Chrome.

La compatibilidad con CDP en Firefox dejó de estar disponible en Firefox 129. está programada para quitarse a finales de 2024. Si tienes automatizaciones existentes que dependen de la compatibilidad con CDP en Firefox, te recomendamos te recomendamos migrar a WebDriver BiDi. Si eso no es posible, comunícate con dev-webdriver@mozilla.org por tu caso de uso.