¿Qué es WebDriver BiDi?
Scrapeless Agent Browser expone una conexión CDP para la automatización gestionada del navegador y la interacción dinámica con la página.
WebDriver BiDi es un protocolo de automatización de navegadores que admite comandos de un cliente y eventos de un navegador a través de una conexión bidireccional. El nombre BiDi significa bidireccional. El protocolo permite que el software de control observe la actividad del navegador a medida que ocurre, en lugar de expresar cada observación como una solicitud separada para el estado actual del navegador.
WebDriver BiDi es una especificación del W3C en desarrollo, con compatibilidad de implementación que varía según el navegador, la biblioteca cliente y la funcionalidad. Trata el protocolo como una interfaz de automatización definida y luego verifica las operaciones particulares que tu proyecto necesita. Una conexión de navegador usando WebSocket no es evidencia suficiente de que la conexión hable BiDi.
Por qué la automatización de navegadores necesita eventos
Los eventos del navegador permiten que la automatización observe actividad que no es iniciada por el siguiente comando del cliente. Una página puede escribir un mensaje de consola, abrir otro contexto de navegación o iniciar una solicitud de red mientras el cliente está haciendo otro trabajo.
En una interacción de comando y respuesta, el cliente solicita una acción o estado y recibe un resultado. Ese modelo sigue siendo útil para la navegación y la interacción con elementos. Es menos directo cuando el cliente necesita un flujo de observaciones generadas de forma independiente por el navegador.
La especificación de WebDriver BiDi define el mecanismo bidireccional y sus comandos y eventos. El modelo de eventos ayuda a expresar tareas como recopilar registros relevantes a lo largo de un flujo de trabajo, en lugar de comprobar solo después de que una acción haya terminado.
Los eventos no eliminan la necesidad de una regla de finalización. Un mensaje de consola puede ser una evidencia de diagnóstico útil sin demostrar que una aplicación está lista. Decide qué evento o condición de la página corresponde al estado previsto de la tarea.
Comandos, resultados y eventos tienen funciones diferentes
Los comandos BiDi solicitan operaciones del navegador, las respuestas a comandos informan de su resultado y los eventos describen la actividad del navegador entregada a los clientes suscritos. Mantener esas funciones diferenciadas evita suposiciones incorrectas sobre el orden de los mensajes.
Un cliente puede enviar una operación mientras ya hay otra actividad de navegador en curso. La conexión puede transportar un evento antes o después de la respuesta al comando, según lo que esté haciendo el navegador. Correlaciona las respuestas de comando con sus solicitudes e interpreta los eventos según el contexto y la suscripción relevantes.
No trates la llegada de ningún mensaje como permiso para continuar. Un evento relacionado con la navegación, un resultado de script y una entrada de registro responden a preguntas diferentes. Tu cliente necesita asociar las observaciones con la página y la acción a las que se refieren.
Para un flujo de trabajo de diagnóstico, define la ventana de observación. Suscríbete antes de la actividad que quieras observar, conserva la información necesaria para explicar esa actividad y libera la suscripción cuando el trabajo ya no la necesite. De lo contrario, un cliente de larga duración puede acumular observaciones de trabajos no relacionados.
Los contextos de navegación dan una ubicación a los eventos
Un contexto de navegación identifica dónde tiene lugar la actividad del navegador, como una página de nivel superior o un marco incrustado. La identidad del contexto importa cuando varias páginas pueden emitir eventos similares.
Una ventana emergente puede pertenecer a un contexto de nivel superior diferente de la página que la abrió. Un iframe puede navegar de forma independiente dentro de una página principal. Si tu cliente asume que cada evento pertenece al documento abierto inicialmente, puede adjuntar la evidencia equivocada a una extracción o prueba.
Sigue el contexto que necesita la tarea en lugar de confiar solo en un título visible. Los títulos y las URL pueden cambiar, y contextos separados pueden mostrar temporalmente la misma dirección. Un identificador de contexto proporciona una referencia a nivel de protocolo, mientras que la URL y el título proporcionan un contexto legible por humanos útil.
La navegación también afecta a los entornos de script. No se debe asumir que un valor obtenido de un documento describe un documento posterior en la misma pestaña. Construye el flujo de trabajo en torno al ciclo de vida del contexto y su documento actual.
El WebDriver clásico, BiDi y CDP son interfaces diferentes
El WebDriver clásico, WebDriver BiDi y el Protocolo de Chrome DevTools proporcionan diferentes interfaces de control del navegador. Una biblioteca puede admitir más de una, pero la compatibilidad debe establecerse para el navegador y la operación específicos.
| Interfaz | Modelo principal | Pregunta de compatibilidad |
|---|---|---|
| WebDriver clásico | Comandos y respuestas remotos | ¿El extremo remoto implementa los comandos requeridos? |
| WebDriver BiDi | Comandos bidireccionales y eventos del navegador | ¿Están implementados los módulos y eventos necesarios? |
| CDP | Comandos y eventos orientados a DevTools | ¿Este endpoint de navegador admite los dominios seleccionados? |
La interfaz remota de WebDriver sigue siendo la base para entender las sesiones y comandos clásicos. BiDi añade un protocolo bidireccional estandarizado en lugar de hacer que cada nombre de comando o transporte existente sea intercambiable.
WebSocket es un transporte, no una garantía de compatibilidad. Un endpoint CDP y un endpoint BiDi pueden usar ambos una conexión persistente mientras aceptan mensajes diferentes. Enviar los comandos de un protocolo al otro no es una estrategia de migración.
Cómo el alcance de la suscripción cambia la observabilidad
Las suscripciones determinan qué eventos del navegador recibe el cliente según las reglas de eventos del protocolo. Una suscripción útil incluye las observaciones necesarias para el flujo de trabajo y excluye la actividad innecesaria.
Considere una prueba que abre una página de aplicación autorizada y verifica un registro requerido. Los registros del navegador pueden ayudar a diagnosticar por qué el registro no apareció. La recopilación de esos registros alrededor de la acción puede preservar la secuencia relevante sin conservar todo el historial de navegación de una sesión compartida.
Las observaciones de red pueden contener información sensible, incluidos URLs o metadatos relacionados con cuentas. Limite la recopilación al alcance de la tarea, redacte los secretos de los artefactos retenidos y elija una política de retención que se ajuste a la necesidad de diagnóstico.
La limpieza de suscripciones forma parte de la corrección del cliente. Si una sesión reutilizada continúa entregando eventos de una tarea completada, las tareas posteriores pueden interpretarlos mal. Mantenga la propiedad explícita de las suscripciones y las asignaciones de contexto en lugar de depender de un recolector de eventos global sin límites de trabajo.
El soporte de implementación debe comprobarse por función
El soporte BiDi es una cuestión de compatibilidad a nivel de función, no una única etiqueta de sí o no para toda una pila de automatización. La versión del navegador, el entorno remoto y el enlace de lenguaje pueden afectar qué operaciones están disponibles.
El modelo de automatización bidireccional de Selenium muestra cómo un ecosistema de clientes expone estas capacidades. Verifique la API para el lenguaje y la versión que utiliza en lugar de traducir un ejemplo desde otro enlace por tanteo.
Cree un breve inventario de compatibilidad para el flujo de trabajo. Incluya las familias de eventos requeridas, las operaciones de script, el manejo de contextos y cualquier funcionalidad de red. Marque cuáles son esenciales y cuáles son ayudas de diagnóstico opcionales. Luego pruebe ese inventario en el entorno real.
Que un navegador anuncie una conexión BiDi no prueba que un módulo en particular esté completo ni que un proveedor remoto lo exponga. La prueba significativa realiza la operación necesaria y observa la respuesta o el evento esperados en condiciones representativas.
Mantenga separado el soporte del protocolo de la corrección de los datos. Un flujo de eventos válido puede coexistir con una regla de extracción incorrecta. Verifique tanto la interfaz de automatización como el resultado a nivel de página antes de adoptar el flujo de trabajo.
Planificación de una adopción de BiDi sin reescribir todo
La adopción de BiDi puede comenzar con un requisito de observación acotado junto a la automatización existente. Elija una función cuyo beneficio sea claro y cuyo comportamiento pueda probarse de forma independiente.
Por ejemplo, un equipo puede necesitar recopilación de registros del navegador durante un flujo de aplicación defectuoso. Defina el contexto relevante, suscríbase antes de la acción y confirme que las entradas de diagnóstico esperadas estén asociadas con la página correcta. Mantenga las comprobaciones de navegación y extracción establecidas mientras evalúa la nueva ruta de observación.
Evite tratar una migración de protocolo como prueba de mejora del rendimiento o la fiabilidad. Esos resultados dependen de la implementación del cliente y la carga de trabajo. Mida el trabajo representativo si la velocidad o el uso de recursos forman parte de la decisión.
Documente la propiedad de la creación de conexiones, las suscripciones a eventos y la finalización de sesiones. Las funciones del protocolo son más fáciles de mantener cuando la aplicación tiene un lugar claro responsable de las decisiones de ciclo de vida.
Dónde encaja Scrapeless Agent Browser en una decisión de protocolo
Scrapeless Agent Browser documenta una conexión de navegador basada en CDP y funcionalidad CDP personalizada. Una interfaz CDP documentada no establece soporte de WebDriver BiDi.
Si BiDi es obligatorio para su aplicación, verifique ese requisito de forma explícita antes de elegir una ruta de alojamiento de navegador. Si el flujo de trabajo requerido ya utiliza un cliente CDP documentado, evalúe esa vía según sus propios méritos. La elección adecuada sigue las funciones de protocolo que el trabajo realmente necesita.
El análisis de automatización de Selenium aporta un contexto relacionado sobre los flujos de trabajo impulsados por navegador. Revise los planes de Scrapeless solo después de que los requisitos de conexión y capacidad estén claros.
Conclusión
WebDriver BiDi incorpora comandos y eventos generados por el navegador en un protocolo de automatización bidireccional. Su valor depende del seguimiento correcto del contexto, las suscripciones acotadas y el soporte de funciones verificado. Elija la interfaz en torno a operaciones concretas y mantenga la compatibilidad del protocolo separada de la corrección de los datos que produce el navegador.
Adapte su flujo de trabajo a un protocolo documentado
Explore la interfaz CDP documentada en Scrapeless Agent Browser y verifique los requisitos de protocolo antes de seleccionar una conexión.
Regístrese hoy y obtenga $5 en crédito gratis — no se requiere tarjeta de crédito.
Reclame sus $5 de crédito →FAQ
P: ¿Qué significa BiDi?
BiDi significa bidireccional. El cliente puede enviar comandos y recibir eventos generados por el navegador a través de la conexión del protocolo.
P: ¿Es WebDriver BiDi lo mismo que CDP?
WebDriver BiDi y CDP son protocolos diferentes con contratos de mensajes diferentes. Compartir el transporte WebSocket no hace que sus comandos sean intercambiables.
P: ¿BiDi reemplaza todas las acciones clásicas de WebDriver?
No debe asumirse que BiDi reemplaza todas las acciones clásicas de WebDriver en una pila existente. Evalúe las funciones requeridas y las interfaces compatibles de la biblioteca de cliente antes de cambiar un flujo de trabajo que funciona.
P: ¿Por qué puede llegar un evento antes de la respuesta de un comando?
Los eventos describen la actividad del navegador que puede producirse mientras un comando está en curso. Correlacione las respuestas con las solicitudes e interprete los eventos a través de su contexto en lugar de asumir un único flujo secuencial de mensajes.
P: ¿La documentación de Scrapeless CDP prueba el soporte de BiDi?
La documentación de Scrapeless CDP no prueba el soporte de BiDi. Un requisito de BiDi necesita una verificación independiente del endpoint previsto, el navegador, el cliente y las operaciones.