Descargas

Versiones anteriores de Chrome

En el caso de las versiones anteriores de Chrome, estas son las versiones de ChromeDriver que las admiten.

Para obtener más información sobre cómo seleccionar la versión correcta de ChromeDriver, consulta la página Selección de versión.

ChromeDriver 148

Correcciones de errores

  • Acceso al DOM: Se corrigió una falla que se producía cuando se simulaba un clic en un botón dentro de un iframe que, a su vez, estaba anidado dentro de una raíz de sombra cerrada. El código JavaScript que se usaba anteriormente para encontrar el ID del elemento de marco del propietario no podía atravesar las raíces de sombra cerradas. La nueva implementación usa directamente el formato f.X.d.Y.e.Z para resolver el marco (crrev.com/c/7594919, error: 469831357).
  • Seguridad: Se reforzó la limpieza de argumentos de Chrome para evitar una posible vulnerabilidad relacionada con la inyección de argumentos posicionales (crrev.com/c/7695604, error: 494464734).
  • Pruebas: Se aumentó el tiempo de espera de kImplicitWait para las pruebas de FindElement(s)WhileNavigating en commands_unittest cuando se ejecuta en AddressSanitizer (ASAN). El tiempo de espera predeterminado de 3 s no era suficiente para que el bucle de reintentos consumiera todos los errores simulados bajo la sobrecarga de ASAN, lo que provocaba inestabilidad (crrev.com/c/7657276).

Cambios internos y refactorizaciones

  • Estándares de C++: Se reemplazaron las inclusiones superfluas de base/functional/callback_forward.h en los archivos //chrome .cc, lo que impone el uso de callback.h cuando realmente se utilizan devoluciones de llamada (crrev.com/c/7200285, Bug: 40318405). Se trasladó logging::LoggingSettings de base/logging.h a su propio encabezado base/logging/logging_settings.h para mejorar la eficiencia de la compilación (crrev.com/c/7173024, se volvió a realizar el cambio crrev.com/c/7160150 después de revertir crrev.com/c/7170750). Se corrigieron varios errores de IWYU relacionados con base/logging.h (crrev.com/c/7730403, Bug: 499476145).
  • Estándares de C++: Se reemplazaron las verificaciones redundantes de count(key) del mapa seguidas de búsquedas con accesos más eficientes al iterador find(key) (crrev.com/c/7705392, crrev.com/c/7693277, Bug: 452950815). Se inyectó ThreadDelegate a través del constructor Thread para mejorar la encapsulación y se agregó una opción Restartable a Thread para admitir casos en los que se deben reiniciar los subprocesos (crrev.com/c/7696887, Bug: 40881604).
  • Seguridad de la memoria: Se convirtió #pragma allow_unsafe_buffers a nivel del archivo en macros UNSAFE_TODO() detalladas en chrome/ (crrev.com/c/7132241, Bug: 409340989). Se acortó IOBuffer->span().first() a IOBuffer->first() (crrev.com/c/7159119).
  • Dependencias: Se lanzó la dependencia crossbench, que incluye correcciones para descubrir archivos binarios de ChromeDriver compilados de forma local en macOS y Android (crrev.com/c/7673978).
  • Pruebas: Se volvió a habilitar el esquema module en chromedriver_py_tests después de corregir la infraestructura subyacente de compilación y pruebas (crrev.com/c/7707960).

ChromeDriver 147

Correcciones de errores

  • Pruebas: Se agregó una prueba de regresión hermética para verificar que ElementClick controle correctamente los clics en iframes de origen cruzado con elementos de superposición, específicamente en situaciones de aislamiento de sitios. Esto garantiza que los clics no se enruten erróneamente al contenido integrado en lugar de a la superposición visible (crrev.com/c/7261984, Bug: 42321834, Bug: 42322220).

Cambios internos y refactorizaciones

  • Estándares de C++: Se cambiaron los nombres de los modos y las funciones de decodificación de URL para cumplir con la guía de estilo de C++ de Google, y se reemplazaron DecodeURLMode por DecodeUrlMode y DecodeURLEscapeSequences() por DecodeUrlEscapeSequences() (crrev.com/c/7593238). Se introdujo url::UrlEscapeDecoder para simplificar el uso de la decodificación de URLs en toda la base de código (crrev.com/c/7610180). Se quitaron las inclusiones superfluas de build/branding_buildflags.h en los archivos //chrome (crrev.com/c/7595125, Bug: 40318405). Se quitó la lógica de BUILDFLAG(IS_FUCHSIA) de //chrome, excepto en ChromeDriver (crrev.com/c/5485913, error: 41481724).
  • Seguridad de la memoria (spanificación): Se resolvieron los marcadores UNSAFE_TODO en las utilidades de ChromeDriver y se migraron a implementaciones seguras basadas en rangos (crrev.com/c/7562602, Error: 435317390).

ChromeDriver 146

Correcciones de errores

  • Estabilidad: Se corrigió una falla de ChromeDriver que podía ocurrir mientras se procesaba un comando si la ventana se cerraba de forma simultánea (p.ej., mientras se esperaba que se completara una navegación). La corrección adquiere un bloqueo en el objeto WebView para evitar que se deseche de forma prematura (crrev.com/c/7257074, Bug: 468228355).
  • Seguridad: Se agregó una verificación del encabezado Origin para las conexiones WebSocket entrantes al servidor HTTP de ChromeDriver, lo que evita un posible secuestro entre orígenes (crrev.com/c/7538400, Error: 478783560).
  • Pruebas: Se trasladó testWebviewDetactedDuringClick al filtro inestable, por lo que se omite en todas las ejecuciones en lugar de solo en el modo sin interfaz gráfica (crrev.com/c/7545378, Error: 481485821).

Cambios internos y refactorizaciones

ChromeDriver 145

Nuevas funciones

  • Pruebas: Se actualizó el framework de pruebas run_py_tests.py para que acepte pruebas de cadenas determinísticas de diferentes longitudes (p.ej., 53, 101 y 501 caracteres) dirigidas a los elementos input, textarea y contenteditable. Esto proporciona cobertura de regresión y garantiza que no se descarten caracteres durante las operaciones send_keys largas (crrev.com/c/7221410, Bug: 428116078).
  • Pruebas: Se agregó una prueba específica para el elemento <selectlist> de HTML (crrev.com/c/7420729, Error: 342889200).

Correcciones de errores

  • Capturas de pantalla: Se revirtió el ajuste de escala de las capturas de pantalla de elementos, ya que la especificación de WebDriver no prescribe el ajuste de escala y era incoherente con otras funciones de captura de pantalla (crrev.com/c/7409603, Bug: 42323022).
  • Pruebas: Se corrigieron los errores en testClientHintsDeviceNameIPhoneX y testClientHintsDeviceNameIPad actualizando las expectativas de prueba de ChromeDriver para que coincidan con los valores correctos recientes (para los campos platform, platformVersion, model y mobile) introducidos en Herramientas para desarrolladores Frontend (crrev.com/c/7408699, Error: 474179501).

Cambios internos y refactorizaciones

  • Estándares de C++: Se migraron varios usos de base::Contains() a std::ranges::contains() en //chrome (crrev.com/c/7411011, Error: 470391351), incluidas las correcciones de formato necesarias (crrev.com/c/7247217). Se refactorizaron los parámetros de cadena a std::string_view para evitar asignaciones innecesarias de cadenas cuando se usa substr() (crrev.com/c/7350716). Se quitaron las inclusiones superfluas de <map> en los encabezados de //chrome (crrev.com/c/7225838, Bug: 40318405). Se corrigió el orden de inclusión en algunos archivos (crrev.com/c/7366868). Se reemplazaron las devoluciones de llamada heredadas de BodyAsStringCallbackDeprecated en los usos de SimpleURLLoader por BodyAsStringCallback, que utiliza std::optional en lugar de std::unique_ptr (crrev.com/c/7210000, Bug: 40258809).
  • Pruebas: Se volvió a implementar la configuración de la prueba de campo de InfobarPrioritization, incluidas las correcciones para evitar fallas en las pruebas del navegador de ChromeDriver cuando se controlan barras de información pendientes que no se agregaron a la jerarquía de vistas (crrev.com/c/7223590, Error: 447176374). Se volvió a implementar el filtrado por país y configuración regional para la función de Glic, que se había revertido anteriormente debido a fallas en pruebas no relacionadas (crrev.com/c/7245749, se volvió a implementar crrev.com/c/7148759 después de la reversión crrev.com/c/7233767, Error: 454431875).

ChromeDriver 144

Nuevas funciones

  • Permisos: Se actualizó el comando SetPermission para que cumpla con la especificación más reciente del W3C, utilizando la URL del marco actual (origen incorporado) además del origen de nivel superior. Esto configura correctamente los permisos como storage-access que dependen del contexto incorporado (crrev.com/c/7106801, se vuelve a aplicar crrev.com/c/7093216 después de revertir crrev.com/c/7104484, Bug: 384959114).
  • Testing: Se agregó testMetadata (incluido el nombre de la prueba) a la carga útil de carga de pruebas de ChromeDriver para admitir el verificador de inestabilidad cuando se usan IDs de prueba estructurados (crrev.com/c/7124354, Bug: 456432041).

Correcciones de errores

  • Ciclo de vida del destino: Se corrigió un error por el que ChromeDriver se detenía si se separaba un marco principal mientras un marco secundario esperaba una respuesta de comando. ChromeDriver ahora separa de forma explícita y transitiva los marcos descendientes cuando un WebViewImpl principal está bloqueado y marcado como separado durante el procesamiento de comandos (crrev.com/c/7080912, Bug: 438436830).
  • Administración de ventanas: Se inhabilitó la ejecución en segundo plano de ventanas obstruidas específicamente para las sesiones de ChromeDriver. Se resolvieron problemas en WebDriver BiDi en los que las pruebas podían fallar si el navegador consideraba incorrectamente que una ventana estaba obstruida y la limitaba (crrev.com/c/7128058, Bug: 458027819).

Cambios internos y refactorizaciones

  • Estándares de C++: Se quitaron las inclusiones superfluas de base/functional/callback_forward.h en los archivos //chrome .cc, lo que impone el uso de callback.h cuando realmente se utilizan devoluciones de llamada (crrev.com/c/7200285, Bug: 40318405). Se trasladó logging::LoggingSettings de base/logging.h a su propio encabezado base/logging/logging_settings.h para mejorar la eficiencia de la compilación (crrev.com/c/7173024, se volvió a realizar el cambio crrev.com/c/7160150 después de revertir crrev.com/c/7170750). Se migraron los usos de base::HexEncode al base::HexEncodeLower más reciente (crrev.com/c/7103100, error: 456472080).
  • Seguridad de la memoria (spanificación): Se migraron WriteToPipe y WriteToPipeNoBestEffort en las pruebas de unidades PipeBuilder y PipeConnection para aceptar base::span, lo que corrige el uso no seguro del búfer (crrev.com/c/7090293, Error: 455758227). Se convirtieron las macros #pragma allow_unsafe_buffers a nivel del archivo en macros UNSAFE_TODO() detalladas en chrome/ (crrev.com/c/7132241, Bug: 409340989). Se acortó IOBuffer->span().first() a IOBuffer->first() (crrev.com/c/7159119).

ChromeDriver 143

Correcciones de errores

  • Estabilidad: Se corrigió una falla de Use-After-Free (UAF) en OverrideNetworkConditions. El puntero sin procesar guardado para la aplicación posterior se liberaba entre llamadas consecutivas; ahora se administra correctamente (crrev.com/c/7047422, Bug: 42323833).
  • Pruebas: Se corrigieron las pruebas táctiles inestables de ChromeDriver para Android con la API de WaitForCondition para una sincronización más confiable (crrev.com/c/6978928, error: 42321861).
  • DSE Prewarm: Se inhabilitó la función Prewarm en ChromeDriver de forma predeterminada a través del parámetro de configuración --disable-features=Prewarm, lo que evita que las páginas precalentadas interfieran en la ejecución de pruebas y el descubrimiento de objetivos (crrev.com/c/7007072, Bug: 431928370).

Cambios internos y refactorizaciones

  • Estándares de C++: Se intercambió ref_counted.h por scoped_refptr.h en los encabezados de //chrome en los que solo se usa el puntero inteligente, lo que mejora la eficiencia de la compilación (crrev.com/c/7080753, Bug: 40245294). Se migraron los accesores de GURL a sus variantes de Get* (p.ej., GetSpec() en lugar de spec()) para indicar claramente la asignación de cadenas, lo que evita penalizaciones accidentales en el rendimiento (crrev.com/c/7002119, Bug: 448174617).
  • Pruebas: Se quitaron patrones de verificación redundantes en devtools_client_impl_unittest.cc con ADD_FAILURE() (crrev.com/c/6998270). Se agregó una prueba de regresión para crbug.com/413382905 (crrev.com/c/6879417).

ChromeDriver 142

Nuevas funciones

  • Diagnóstico: Se agregó el estado TERMINATION_STATUS_EVICTED_FOR_MEMORY para diferenciar los procesos que el navegador finalizó de forma proactiva (para ahorrar memoria) de los procesos que fallaron debido a errores de memoria insuficiente (OOM). Actualmente, se comporta de forma idéntica a una falla por OOM (muestra una pestaña triste), pero sienta las bases para un manejo distinto en el futuro (crrev.com/c/6991933, Bug: 394092280).
  • Diagnóstico: Se agregó la capacidad goog:processID a la respuesta de WebDriver, que devuelve el ID del proceso principal del navegador para computadoras. Esto alinea ChromeDriver con moz:processID de Firefox y ayuda a probar las APIs de accesibilidad de la plataforma (crrev.com/c/5825307, Error: 438884256).
  • Pruebas: Se agregó compatibilidad con las cargas de IDs de prueba estructurados a ResultSink para las pruebas de integración de Python de ChromeDriver (crrev.com/c/6916708, error: 418015486).

Correcciones de errores

  • Diagnóstico: Se modificó el comportamiento de ChromeDriver tras un cierre normal de Chrome para que ya no emita un mensaje de error genérico y confuso relacionado con el uso de user-data-dir. Ahora se indica explícitamente que la instancia se cerró y se dirige al usuario a los registros detallados del error específico que generó Chrome (crrev.com/c/6977507, Error: 42323434).
  • Inicialización: Se actualizó la estructura de inicialización de ChromeDriver para que siga siendo compatible con los cambios de Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
  • Android: Se corrigió CheckAppInstalled en versiones heredadas de Android (anteriores a Android 11) en las que el administrador de paquetes no admite la marca --user cur (crrev.com/c/6785949, Error: 433885051).
  • Pruebas: Se corrigió un error por el que IgnoreDuplicateNavs anulaba incorrectamente los interruptores de capacidad predeterminados en ChromeDriver. Se inhabilitó la función para las sesiones de ChromeDriver y se corrigió la lógica de Switches::SetFromSwitches (crrev.com/c/6949166, Bug: 445332809).

Cambios internos y refactorizaciones

  • Estándares de C++: Se reemplazaron varias llamadas a base::JSONWriter::Write() que estaban obsoletas por base::WriteJson(), lo que mantiene el comportamiento de devolver una cadena vacía en caso de falla cuando no se verificó el valor de devolución (crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217). Se requiere la habilitación explícita para las opciones de análisis de JSON que no cumplen con los requisitos (p.ej., permitir comentarios) en base::JSONReader::Read y base::JSONReader::ReadAndReturnValueWithError (crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). Se quitaron las directivas #pragma allow_unsafe_buffers a nivel del archivo después de los esfuerzos manuales de spanificación (crrev.com/c/6778035, Bug: 409340989). Se limpiaron los usos de la macro LazyInstance con fugas (crrev.com/c/6781377, error: 432815283). Se incluyeron los encabezados faltantes para http_response_headers.h a través de IWYU (crrev.com/c/6894196, Bug: 40216326).
  • Seguridad de la memoria (spanificación): Se spanificaron automáticamente numerosos punteros en el directorio chrome/ para las compilaciones de Linux, y se agregaron CHECK recuperables donde los parámetros de tamaño se consideraron redundantes (crrev.com/c/6734592, Error: 431824299).
  • Pruebas: Se inhabilitó temporalmente testDoesntCrashOnClosingBrowserFromAsyncScript en macOS (crrev.com/c/6995358, Bug: 446461733). Se corrigieron errores de escritura en los nombres de los métodos de prueba que involucran "Certificates" (crrev.com/c/6950683). Se aplicó el formato automático a los archivos //chrome/test de GN (crrev.com/c/6789277, error: 40760278).
  • FedCM: Se introdujo una función ShouldShowAccountsPassiveDialog en IdentityDialogController para verificar de forma síncrona si se debe mostrar un diálogo de cuentas, lo que corrige una falla relacionada con las verificaciones asíncronas y la instrumentación de Herramientas para desarrolladores (crrev.com/c/6780413, Bug: 425801332).
  • Precalentamiento de DSE: Se agregó Page.setPrewarmingAllowed al Protocolo de Herramientas para desarrolladores como solución a corto plazo para habilitar o inhabilitar manualmente el precalentamiento, y se corrigieron las pruebas relacionadas para garantizar que interactúen correctamente con la página principal (crrev.com/c/6847287, Bug: 431928370). Se habilitó la función DSEPrewarm en fieldtrial_testing_config.json para macOS y Windows después de resolver la inestabilidad (crrev.com/c/6951835, Bug: 431928370, Bug: 435621391). (Nota: El comando de CDP y la habilitación de la prueba de campo se revirtieron debido a que eran cambios que interrumpían el funcionamiento para los usuarios de WebDriver, ya que exponían destinos inesperados y causaban otros problemas posteriores, respectivamente [crrev.com/c/6966133, crrev.com/c/6966161, Error: 445883308]).
  • Limpieza: Se quitaron las referencias restantes al proyecto WebLayer no compatible en el código de Android (crrev.com/c/6792520, Error: 40272607).

ChromeDriver 141

Nuevas funciones

  • Pruebas: Se agregó compatibilidad con la marca --enable-per-test-tracing a run_wpt_tests.py, lo que coincide con el comportamiento de run_web_tests.py. Esto recupera eventos de seguimiento en formato JSON de un búfer interno de ChromeDriver y los guarda en el directorio de resultados de la prueba (crrev.com/c/6820247, Error: 434017035).

Correcciones de errores

  • Diagnóstico: Se impidió que ChromeDriver imprimiera su propio seguimiento de pila interno cuando devolvía un error kTabCrashed. Esto evita confundir a los usuarios y, al mismo tiempo, garantiza que el seguimiento de pila de falla del renderizador permanezca en los registros (crrev.com/c/6841669, Error: 395131239).

Cambios internos y refactorizaciones

  • Estándares de C++: Se reemplazaron las llamadas a memset potencialmente no seguras por la inicialización agregada estándar de C++ (instance = {}) en chrome/ para evitar omitir los constructores y garantizar la seguridad de la memoria (crrev.com/c/6875520, Bug: 435317390). Se agregaron las directivas #include faltantes para //base/time/time.h a través de IWYU (crrev.com/c/6832689, Bug: 40216326). Se volvieron a escribir las directivas de compilación de búfer no seguro forzado (crrev.com/c/6828538).
  • Pruebas: Se agregó una prueba de regresión para crbug.com/413382905 (crrev.com/c/6879417).
  • Transiciones de vista: Se volvió a implementar la corrección de las transiciones de vista que actualiza el trabajo realizado antes de que se resuelva la promesa finalizada, después de que se demostró que era incorrecta una reversión especulativa anterior vinculada a errores de prueba de ChromeDriver (crrev.com/c/6846765, se volvió a implementar crrev.com/c/6806850 después de la reversión crrev.com/c/6808537).

ChromeDriver 140

Correcciones de errores

  • Selección de destino: Se solucionó un problema por el que la ventana de Herramientas para desarrolladores podía competir con la página principal para ser seleccionada como la ventana principal cuando se iniciaba Chrome con --auto-open-devtools-for-tabs. ChromeDriver ahora excluye de forma explícita los destinos con el prefijo devtools:// durante la determinación de la ventana principal (crrev.com/c/6769505, Bug: 427908560).
  • Selección de destino: Se evitó que ChromeDriver calculara de forma incorrecta el punto central visible de los elementos ignorando cualquier recorte de overflow:hidden impuesto por los elementos superiores. Esto alinea el cálculo con la especificación de WebDriver y otros casos de PerformActions (crrev.com/c/6735230, Error: 42322257).
  • Android: Se corrigió la función CheckAppInstalled en versiones anteriores de Android (anteriores a Android 11) en las que no se admite la marca --user cur para el administrador de paquetes (crrev.com/c/6785949, Error: 433885051).
  • Pruebas: Se corrigió la inestabilidad en el paquete de pruebas chromedriver_py_tests causada por la función DSEPrewarm. ChromeDriver ahora inhabilita el activador de precalentamiento mientras un cliente de CDP está conectado para evitar recuentos de destino inesperados durante las pruebas (crrev.com/c/6764274, Bug: 423465927, Bug: 431928370).
  • Pruebas: Se revirtió la adición de la función ShouldShowAccountsPassiveDialog a IdentityDialogController (parte de FedCM), lo que provocó una regresión (crrev.com/c/6780413, Error: 425801332).

Cambios internos y refactorizaciones

ChromeDriver 139

Correcciones de errores

  • Estructura de inicialización: Se actualizó la estructura de inicialización de ChromeDriver para que siga siendo compatible con las actualizaciones de Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
  • Análisis de argumentos: Se unieron varios argumentos --js-flags (de manera similar a como se controla --enable-features) en lugar de tomar solo el último proporcionado. Esto mejora la usabilidad cuando se pasan marcas complejas de V8 (crrev.com/c/6612042, Bug: 421941798).

Cambios internos y refactorizaciones

  • Seguridad de la memoria (spanificación): Se reemplazaron los usos de base::MakeStringPiece() que dejaron de estar disponibles por std::string_view en //chrome/test (crrev.com/c/6628089, Bug: 422940464). Se incluyó base/strings/string_view_util.h donde se usa base::as_string_view(), lo que prepara el terreno para futuras migraciones de espacios de nombres (crrev.com/c/6625024, error: 423048781).
  • Estándares de C++: Se mejoró el cumplimiento de Include What You Use (IWYU) en //chrome, ya que se incluye <vector> de forma explícita (crrev.com/c/6652818), base/notimplemented.h (y se quita base/notreached.h cuando no se usa) (crrev.com/c/6655452, Bug: 41493641), base/strings/string_util.h (crrev.com/c/6607646), base/strings/string_number_conversions.h (crrev.com/c/6593576) y se quitaron las inclusiones superfluas de base/debug/stack_trace.h (crrev.com/c/6622838).
  • Pruebas: Se transfirió la opción --driver-logging a run_wpt_tests.py, lo que permite que la secuencia de comandos vuelque ChromeDriver y el navegador stderr incluso en niveles de detalle más bajos (crrev.com/c/6608138, Bug: 421262910).
  • Pruebas: Se volvieron a habilitar las pruebas de integración de ChromeDriver que se habían inhabilitado anteriormente: pruebas de capturas de pantalla (testTakeElementScreenshot*) (crrev.com/c/6598797, Bug: 42321815), pruebas de cierre de ventanas a través de JavaScript (testCloseWindowUsingJavascript*) (crrev.com/c/6598978, Bug: 42321150) y pruebas de tamaño de ventanas headless-shell (crrev.com/c/6621336, Bug: 42323661).
  • Pruebas: Se corrigió run_wpt_tests.py --stable para identificar y usar correctamente la versión estable actual de Clank (Android) analizando el APK, y se actualizó la secuencia de comandos para descargar la versión correspondiente de ChromeDriver de Chrome for Testing (CfT) en un directorio temporal en lugar de contaminar la confirmación (crrev.com/c/6635694, Error: 402548382).
  • Infraestructura de compilación: Se quitó una dependencia de compilación innecesaria en write_build_config.py al no permitir que los destinos de android_resources() tengan manifiestos, ya que la combinación de manifiestos y la nomenclatura de paquetes de R.java ahora se controlan con atributos especializados (crrev.com/c/6625266, Error: 413331591).
  • FedCM: Se corrigió una marca de función de configuración de Finch relacionada con FedCM (crrev.com/c/6614137, error: 421959289).

ChromeDriver 138

Nuevas funciones

  • Administración de funciones de pantalla: Se actualizó el comportamiento de ChromeDriver para los segmentos de viewport de modo que coincidan con una resolución reciente del Grupo de trabajo de CSS: ahora devuelve de forma coherente un array con un solo segmento cuando se usa un dispositivo plegable de forma plana o para todos los dispositivos no plegables. Esto coincide con el comportamiento de las consultas de medios y mitiga los riesgos de huellas digitales (crrev.com/c/6469455, Bug: 414430842).
  • Preferencias y estado local (Android): Se agregó compatibilidad con las capacidades localState y prefs cuando se ejecuta ChromeDriver en dispositivos Android. Esto se basa en ADB y requiere una marca user-data-dir personalizada. Actualmente, inicializa el estado con plantillas predeterminadas (crrev.com/c/6397155, error: 406427226).

Correcciones de errores

  • Estabilidad: Se corrigió una falla de ChromeDriver que ocurría en macOS cuando un usuario descartaba el diálogo de la Experiencia de primera ejecución (FRE) a través del botón "Continuar". La falla se produjo por la anulación de un estado de error kTargetDetached y el intento de acceder a un WebView no válido (crrev.com/c/6538867, Bug: 410599467).
  • Pruebas de rendimiento: Se corrigió el ejecutor de pruebas crossbench en los bots de pinpoint de Windows que intentaban ubicar de forma incorrecta el objeto binario de ChromeDriver con una ruta de acceso ../Release_x64 obsoleta cuando se pasaba --browser=release_x64, lo que provocaba que se volviera a descargar un objeto binario anterior en lugar de usar la compilación local (crrev.com/c/6502134).

Cambios internos y refactorizaciones

  • Seguridad de la memoria (spanificación): Se reemplazaron los punteros no verificados en WebSocket::OnReadDuringHandshake y WebSocket::OnReadDuringOpen por base::span, lo que aborda las advertencias de unsafe-buffer-usage (crrev.com/c/6557346, Bug: 354307328). Se quitaron las pragmas #pragma allow_unsafe_buffers innecesarias en chrome/test/chromedriver que ya no eran necesarias después de otras migraciones (crrev.com/c/6503154, Bug: 414858406).
  • Estándares de C++: Se quitaron las directivas superfluas #include "url/gurl.h" y #include <queue> en los encabezados chrome/, y se agregaron declaraciones anticipadas cuando correspondía para mejorar los tiempos de compilación (crrev.com/c/6578272, crrev.com/c/6570349, Bug: 40318405).
  • Migración de la API: Se migraron RSAPrivateKey a crypto::PrivateKey y SHA256HashString a crypto::Sha256, y se limpió un caso de manejo de errores obsoleto, ya que las nuevas APIs de generación de claves son infalibles (crrev.com/c/6490294, Error: 372283556).
  • Pruebas: Se agregó el atributo OwnContributionEstimate a los comandos de automatización de la API de Compute Pressure (implementaciones de CDP y testdriver) (crrev.com/c/6373001, Bug: 402033762).
  • Pruebas: Se corrigieron las pruebas de integración que verifican ClearDisplayFeatures en los bots de integración continua (CFT) simplificando las aserciones para verificar que los segmentos del viewport se restablezcan al tamaño predeterminado del viewport (crrev.com/c/6535067, Bug: 417195296).
  • Pruebas: Se aumentaron los tiempos de espera para las pruebas de WebDriver de Protected Audience para abordar la inestabilidad en los bots de CI más lentos (crrev.com/c/6494277).

ChromeDriver 137

Nuevas funciones

  • Administración de funciones de pantalla: Se agregaron comandos de ChromeDriver para emular y borrar funciones de pantalla, y se implementaron los requisitos de automatización para las APIs de Viewport Segments (CSS y JS). Esto permite a los desarrolladores probar de forma programática situaciones de pliegue o bisagra en dispositivos plegables o de pantalla doble (crrev.com/c/6368674, Bug: 40137084).
  • BiDi: Se actualizó ChromeDriver para ejecutar BiDi Mapper en un destino oculto de forma predeterminada. Esto evita que la página data:, del asignador interfiera en la ejecución de prueba y la visibilidad. Para depurar el asignador, los clientes pueden pasar la marca --debug-bidi-mapper para ejecutarlo en una pestaña visible (crrev.com/c/6441064, relanding crrev.com/c/6433672 después de revertir crrev.com/c/6439633, Bug: 402339952).

Correcciones de errores

  • BiDi: Se evitó que ChromeDriver cerrara incorrectamente toda la sesión del navegador cuando procesaba comandos de BiDi (como browsingContext.close) si perdía el seguimiento de los destinos creados por otras sesiones de CDP o BiDi. Ahora se sincronizan de forma explícita las pestañas de nivel superior antes de decidir finalizar el navegador (crrev.com/c/6440293, error: 42323838).
  • BiDi: Se alinea con la especificación upstream de WebDriver BiDi. Para ello, se garantiza que ChromeDriver quite la capacidad goog:channel si se pasa como una cadena vacía, y se la trata de forma idéntica a un canal faltante (crrev.com/c/6438865, Error: 409282307).
  • Entrada: Se corrigió un problema por el que los eventos táctiles y de puntero fallaban o se comportaban de forma incorrecta. Para ello, se actualizó ChromeDriver para admitir coordenadas X e Y fraccionarias (de punto flotante) en los comandos de movimiento del puntero (crrev.com/c/6440834, error: 409684333).
  • Selección de destino: Se impidió que los iframes fuera del proceso (OOPIF) de PDF se abrieran en vistas de invitado (cuando la función PdfOopif está inhabilitada) y se filtraran en la lista de destinos de nivel superior. Se expandió la lógica de filtrado para excluir correctamente estos destinos con el prefijo chrome-extension:// (crrev.com/c/6383500, Bug: 396611138).

Cambios internos y refactorizaciones

  • Estándares de C++: Se volvió a aplicar el cambio para usar std::string_view en los nombres de archivos en LogMessage y en los eventos de seguimiento, lo que resolvió los problemas con el control de cadenas terminadas en nulo que causaron las reversiones anteriores (crrev.com/c/6430129, se volvió a aplicar crrev.com/c/6395097, se volvió a aplicar crrev.com/c/6387020 después de la reversión crrev.com/c/6383699).
  • Estándares de C++: Se modernizaron las llamadas a Environment::GetVar en //chrome para usar la API de devolución de std::optional en lugar de los parámetros de salida (crrev.com/c/6417343, Bug: 400758498).
  • Estándares de C++: Se refactorizaron los asistentes de identificadores específicos de Windows de win_util.h en un encabezado windows_handle_util.h dedicado para evitar problemas de dependencia circular (crrev.com/c/6418805, Bug: 406023316).
  • Pruebas: Se agregó un controlador de dominio Browser específico para Android y se implementó la API de Browser.getWindowForTarget para admitir pruebas de creación de ventanas de Android (crrev.com/c/6427605, error: 404932444).
  • Pruebas: Se corrigió la inestabilidad en las pruebas de macOS causada por la demora en la inicialización de las extensiones (crrev.com/c/6423229, error: 407804497).
  • Pruebas: Se inhabilitó temporalmente la creación paralela de user-data-dir en testBrowserWithUsedUserDataDir cuando se ejecuta en chrome-headless-shell, ya que entraba en conflicto con el bloqueo exclusivo en macOS (crrev.com/c/6470455, error: 411407649, error: 380903149).
  • Extensiones: Se actualizaron las pruebas de Chrome para que se aprueben cuando se habilite la prueba de campo de ExtensionManifestV2Unsupported. Este es un paso fundamental, aunque la prueba en sí permanece inhabilitada hasta que se realicen actualizaciones en otros repositorios (crrev.com/c/6415997, Bug: 367395349). (Nota: Se revirtió un intento anterior de habilitar esta prueba a través de la configuración crrev.com/c/6397497, lo que revirtió crrev.com/c/6358257).
  • Dependencias: Se actualizó manualmente la dependencia catapult y se actualizaron los archivos pydeps y las referencias devil_util asociados (crrev.com/c/6480814, crrev.com/c/6466865, se volvió a aplicar crrev.com/c/6406098 después de revertir crrev.com/c/6448910, Bug: 397459590).

ChromeDriver 136

Nuevas funciones

  • Ciclo de vida del navegador: Se agregó una capacidad específica de Chrome quitGracefully que obliga a ChromeDriver a intentar detener el navegador correctamente (con Browser.close o SIGTERM) en lugar de SIGKILL predeterminado. Esto les da tiempo a los depuradores, como rr, para volcar sus grabaciones antes de que finalice el proceso (crrev.com/c/6322538, se vuelve a aplicar crrev.com/c/6269180 después de una breve reversión crrev.com/c/6320536, Bug: 339644807).
  • Pruebas: Se canalizó el argumento run_wpt_tests.py --wrapper generando una secuencia de comandos wrapper temporal que antepone el objeto binario del navegador con el depurador (p.ej., rr) y sus argumentos. Esto soluciona la incapacidad de ChromeDriver para sustituir el objeto binario directamente cuando args se procesan como modificadores (crrev.com/c/6271108, Bug: 339644807).
  • Pruebas: Se habilitó la traducción por preferencia en TranslateEnabledTest para admitir un entorno de pruebas en el que ChromeDriver administra el proceso del navegador y omite la nueva restricción de --remote-debugging-port cuando --user-data-dir es implícito (crrev.com/c/6354089, Bug: 327797500).
  • DevTools: Se agregó compatibilidad con la función de instancias múltiples de DevTools para abrir una pestaña nueva en otra ventana en Android (crrev.com/c/6352169, error: 401269942, error: 382183406).

Correcciones de errores

  • Selección de destino: Se solucionó un problema por el que los iframe (OOPIF) fuera de proceso de PDF que se abrían en vistas de invitado no se filtraban de la lista de destinos de nivel superior cuando se inhabilitaba la función PdfOopif. Se expandió el filtro para incluir el prefijo chrome-extension, lo que resuelve el error y abarca las extensiones de Chrome de MV3 que crean pestañas (crrev.com/c/6383500, Bug: 396611138).
  • Selección de destino: Se corrigió una regresión que provocaba que el comando getWindowHandles() fallara con un estado connection refused cuando se segmentaban apps empaquetadas de Chrome (crrev.com/c/6317161, error: 396622746).

Cambios internos y refactorizaciones

  • Estándares de C++: Se volvió a implementar el cambio que usa std::string_view para los nombres de archivos en LogMessage y los eventos de seguimiento, lo que mejora la compatibilidad con las estructuras de registro de Rust que no garantizan cadenas terminadas en nulo (crrev.com/c/6387020, se volvió a implementar crrev.com/c/5765705 después de revertir crrev.com/c/6383699 y otra reversión crrev.com/c/6395097).
  • Estándares de C++: Se reemplazaron las llamadas redundantes de base::Value::Clone() para optimizar el rendimiento (crrev.com/c/6361818). Se suprimieron advertencias adicionales de -Wunsafe-buffers-in-libc-calls en archivos específicos de Windows para limpiar el resultado de la compilación (crrev.com/c/6369920, error: 390223051).
  • Extensiones: Se revirtió la adición de la entrada fieldtrial_testing_config.json para la fase ExtensionManifestV2Unsupported debido a un problema (crrev.com/c/6397497, se revierte crrev.com/c/6358257, Error: 367395349, Error: 406523920).
  • Documentación: Se mejoró la documentación de pruebas de ChromeDriver específica para Android (crrev.com/c/6354040).

ChromeDriver 135

Nuevas funciones

  • BiDi: Se actualizó el asignador de BiDi para heredar los permisos de ChromeDriver cuando se especifica --enable-unsafe-extension-debugging. Esto permite que los clientes de WebDriver BiDi prueben de manera eficaz las extensiones que requieren permisos que normalmente tiene el cliente de WebDriver (crrev.com/c/6288627, Bug: 393500934).

Correcciones de errores

  • Pruebas: Se volvieron a habilitar y actualizar las expectativas para varias pruebas de WDSpec que antes se marcaban como fallidas. Esto restablece la cobertura de cumplimiento de especificaciones para las pruebas aprobadas (crrev.com/c/6310420).

Cambios internos y refactorizaciones

  • Limpieza: Se quitaron todos los rastros de Lacros (incluidos IS_CHROMEOS_LACROS y los datos de prueba relacionados) de chrome/test/, ya que Lacros está en desuso y se estandarizó en IS_CHROMEOS (crrev.com/c/6284446, Error: 354842935).
  • Limpieza: Se quitaron todos los rastros de la utilidad md5sum después de su reemplazo por devil_util, y se limpiaron las dependencias de compilación heredadas (crrev.com/c/6309939, Error: 397452007).
  • Estándares de C++: Se quitó el espacio de nombres chrome:: de ResultCode y IsNormalResultCode(), y se trasladaron al espacio de nombres global. También se quitaron las importaciones obsoletas de inicio de ChromeOS (crrev.com/c/6196899, Bug: 41050580).
  • Seguridad de la memoria: Se simplificó una llamada a std::lower_bound en ChromeDriver aprovechando std::ranges::lower_bound (crrev.com/c/6223172, Error: 392116519). Se suprimieron las advertencias de unsafe_libc_call para los archivos que se identificaron inicialmente como no aptos para el cumplimiento en preparación para la aplicación futura (crrev.com/c/6187925, Error: 390223051). Se marcó el valor de devolución de std::to_array como constexpr para mejorar la seguridad y la evaluación en tiempo de compilación (crrev.com/c/6298909).

ChromeDriver 134

Nuevas funciones

  • Mitigaciones del seguimiento por rebote (DIPS): Se volvió a implementar la compatibilidad de ChromeDriver con las mitigaciones del seguimiento por rebote, utilizando el comando RunBounceTrackingMitigations. Se reestructuró la prueba de integración para usar páginas distintas, lo que garantiza que los rebotes con estado se registren correctamente antes de que se ejecute el comando. Esta función admite la especificación de nav-tracking-mitigations y se implementa en //chrome (crrev.com/c/4935955, error: 1474656). (Nota: Se agregó originalmente en crrev.com/c/4873672 y, luego, se revirtió).
  • BiDi: Se actualizó ChromeDriver para usar las propiedades de extensión BiDi estándar de WebDriver con el prefijo goog:, lo que se alinea con los cambios de chromium-bidi upstream. Ya no se permite la propiedad heredada channel (crrev.com/c/6179410).
  • Windows: Se agregó un recurso de versión al archivo binario chromedriver.exe en Windows (crrev.com/c/6114586, error: 385300323).

Correcciones de errores

  • MPArch/Targets: Se corrigió una regresión en la que los destinos de extensiones de Chrome (chrome-extension://) se descubrían y adjuntaban de forma incorrecta durante la determinación del destino principal en ChromeOS, lo que provocaba que fallaran los comandos posteriores (como la navegación). Ahora, los destinos de extensión se omiten correctamente durante esta fase inicial (crrev.com/c/6183202, error: 385241097).
  • MPArch/Targets: Se corrigió otra regresión en la que los destinos de pestañas para los background_page de extensión no se filtraban correctamente de las vistas web de nivel superior cuando se inhabilitaba la compatibilidad con destinos de extensión (crrev.com/c/6160774, error: 385731198).
  • MPArch/Navigation: Se corrigió un problema por el que una pestaña podía no tener una página activa adjunta durante la activación de MPArch, lo que provocaba que ChromeDriver la viera incorrectamente como un estado de error. ChromeDriver ahora espera a que la pestaña adquiera una página nueva y complete su navegación antes de resolver el estado (crrev.com/c/6177606).
  • Procesamiento de registros: Se corrigió una falla (error de DCHECK en base::Value()) causada por el truncamiento incorrecto de cadenas de registro que contienen caracteres multibyte. Se actualizó la lógica para usar la detección de límites de UnicodeString en lugar de verificaciones simples de longitud de std::string, lo que garantiza puntos de código válidos (crrev.com/c/6210809, Bug: 367752739).
  • Pruebas: Se migraron la mayoría de las WPT relacionadas con la generación previa (excepto algunas con problemas conocidos de la API) de content_shell a headless_shell, ya que la refactorización reciente de MPArch permite que ChromeDriver las ejecute correctamente (crrev.com/c/6168830, Error: 42323502, Error: 366257368).

Cambios internos y refactorizaciones

ChromeDriver 133

Nuevas funciones

  • Arquitectura: Se refactorizó ChromeDriver para admitir la arquitectura de varias páginas (MPArch) y los destinos de pestañas. WebViewImpl ahora se conecta a los destinos de pestañas a través de AutoAttach. Los comandos que antes mostraban una página ahora buscan la página activa en una pestaña. Este cambio permite inspeccionar las páginas en segundo plano de las extensiones, a las que ahora se puede orientar a través de la capacidad enable_extension_targets (de forma predeterminada, se omiten los objetivos de las extensiones) (crrev.com/c/5961156, Bug: 379767670, Bug: 42323502). Se corrigió una regresión por la que las páginas de URLs de chrome-extension:// se incluían de forma incorrecta como destinos de extensión. La selección se revierte solo a type=background_page (crrev.com/c/6093588, error: 383141569). Se movió enableExtensionTargets a Opciones de Chrome en lugar de una capacidad de nivel superior (crrev.com/c/6093032).
  • Clásico: Se restableció la compatibilidad con las referencias de elementos de varias claves. Esta función no documentada, que se suele usar para crear referencias compatibles con los modos W3C y no W3C, ahora se admite oficialmente y se incluye en las pruebas de integración (crrev.com/c/6063257, error: 379584343).

Correcciones de errores

  • Estabilidad: Se evitó que ChromeDriver se bloqueara de forma indefinida cuando controlaba el comando browsingContext.close. Al usar un mecanismo diferente para determinar si es necesario cerrar el navegador, ChromeDriver ahora puede controlar correctamente los mensajes de beforeunload sin detenerse (crrev.com/c/6080431, Bug: 42323838, Bug: 379049702).
  • Navegación: Se corrigió un error por el que una página ficticia con la URL about:blank?test causaba una detención. La heurística diseñada para identificar una ventana nueva que no responde (baseURL==about:blank y documentURL!=about:blank) ahora controla correctamente estas URLs de cadena de consulta como un caso especial (crrev.com/c/6038039, Bug: 377410086).
  • Navegación: Se agregó lógica para volver a intentar los comandos que fallan con un error AbortedByNavigation. ChromeDriver ahora intentará ejecutar el comando varias veces antes de abandonar con un error Timeout estándar (crrev.com/c/6012427, Bug: 42323825).
  • Diagnóstico: Se reenvió el error kTargetCrashed directamente a través de NavigationTracker. Si un destino falla durante la detección de navegación, ahora se muestra este error específico al usuario en lugar de un tiempo de espera genérico, lo que mejora el diagnóstico (crrev.com/c/6032612, Bug: 377410086).
  • Android: Se corrigieron las búsquedas de destino de pestañas en chrome_android_impl.cc (crrev.com/c/6110492, bug: 384781876).
  • Pruebas: Se corrigió la inestabilidad en varias pruebas de cambio de tamaño de la ventana en win11-arm64 (p.ej., hacer clic en elementos ocultos). Ahora, las pruebas consultan el tamaño de la ventana interna de forma repetida después de una operación de cambio de tamaño hasta que se registra correctamente una altura positiva, lo que explica las repintadas lentas de la ventana (crrev.com/c/6012658, Bug: 378470046).
  • Pruebas: Se corrigieron varias fallas en las pruebas de integración asignando errores de conexión genéricos de Python a WebSocketConnectionClosedException, lo que simplificó el manejo de errores (crrev.com/c/6054134), se evitaron las condiciones de carrera usando SendCommand en lugar de PostCommand cuando se esperan efectos secundarios inmediatos (crrev.com/c/6054137) y se reemplazó la dependencia de los efectos inmediatos de ExecuteScript por mecanismos de detección de navegación más confiables (crrev.com/c/6063040, Error: 42323825).
  • Pruebas: Se revirtió la eliminación de la marca de función FedCmIdpSigninStatus, ya que su eliminación causó interrupciones (crrev.com/c/6082405, se revirtió crrev.com/c/6078693, Error: 384866916, Error: 381211734).
  • Herramientas: Se agregó compatibilidad con el comando Print en la secuencia de comandos log_replay (crrev.com/c/6010809, error: 378451938).

Cambios internos y refactorizaciones

  • Estándares de C++: Se quitó el histograma de Mojo.InvalidUTF8String, lo que permitió limpiar los encabezados públicos de Mojo y las posteriores cascadas de IWYU (crrev.com/c/6133861, Error: 40509710, Error: 386793084).
  • Estándares de C++: Se evitaron las asignaciones en WaitableEvent::Wait() cambiando de std::list a base::circular_deque (crrev.com/c/6097198).
  • Estándares de C++: Se establecieron como predeterminados los constructores y destructores vacíos definidos por el usuario en toda la base de código de chrome/ siempre que fue posible (crrev.com/c/6101911, crrev.com/c/6056220, Bug: 381119547).
  • Seguridad de la memoria (spanificación): Se migraron los arrays de estilo C a std::array en chrome/ como parte del esfuerzo más amplio para abordar las advertencias de -Wunsafe-buffer-usage (crrev.com/c/6043879, Error: 378069401). Se incorporó el uso estricto de size_t en las funciones de intervalo (crrev.com/c/6026238, crrev.com/c/6020621).
  • Pruebas: Se transfirió la función de pantalla completa {ref,crash}tests de nuevo a wpt_internal/, ya que testdriver ahora la admite (crrev.com/c/6088404).
  • Pruebas: Se corrigió wptrunner para iOS para ubicar correctamente el wrapper de ChromeDriver cuando se usan directorios de resultado no predeterminados (p.ej., //out/*-ios-wpt-fyi-rel/) mediante la canalización correcta de --build-directory (crrev.com/c/6014940, Error: 374199289, Error: 355218109).
  • Pruebas: Se agregó la prueba de integración testBrowserCrashWhileWaitingForEvents para demostrar casos de regresión en los que los clientes no notan errores fatales (crrev.com/c/6025145, Error: 379049702).
  • Pruebas: Se suprimieron WPT específicas que fallan cuando se ejecutan en headless_shell combinado con ChromeDriver para estabilizar los compiladores (crrev.com/c/6032163, Bug: 377410086).

ChromeDriver 132

Nuevas funciones

  • Pruebas: Se agregó compatibilidad con los parámetros de la línea de comandos repeat y retry-limit a las pruebas de integración de ChromeDriver, y se los asignó a los argumentos estándar isolated-script-test-repeat y isolated-script-test-launcher-retry-limit (crrev.com/c/5938195, Error: 374681919). Para las pruebas que se ejecutan de forma local (no de CI), el valor predeterminado de retry-limit se cambió a 0 (crrev.com/c/5953326, error: 374681919).
  • WebSockets: Se implementaron WebSocketConnection y las clases relacionadas en EmbeddedTestServer, lo que permite que las pruebas relacionadas con WebSocket migren de SpawnedTestServer. Esto incluye el encuadre según el protocolo y el registro simplificado del controlador (crrev.com/c/5849732, Bug: 40812029).

Correcciones de errores

  • Estabilidad: Se corrigió una falla de ChromeDriver que podía ocurrir si un comando de clic provocaba el cierre del navegador. Para ello, se controló correctamente el estado de error kTargetDetached que se introdujo en refactorizaciones anteriores (crrev.com/c/5934524, Error: 42323264).
  • Estabilidad: Se corrigió una falla intermitente en la prueba de integración de testClickNavigateRemoteToLocal en Mac ARM64 resolviendo una condición de carrera (crrev.com/c/5975526, error: 375971185).
  • Navegación: Se corrigieron los comandos GoBack y GoForward, que anteriormente fallaban si se llamaba a Page.getNavigationHistory mientras el documento realizaba una transición para salir de un estado activo (lo que indicaba una navegación en curso). ChromeDriver ahora vuelve a intentar correctamente el comando en esta situación (crrev.com/c/6011739, Bug: 378433873).
  • Ejecución de secuencias de comandos: Se garantizó que las secuencias de comandos que activan una navegación o cierran una ventana devuelvan correctamente un error ScriptTimeout estándar si el navegador no garantiza un resultado, lo que le indica al usuario que evite estructuras de prueba ambiguas (crrev.com/c/5934265, Bug: 372883701).
  • Ejecución de secuencias de comandos: Se corrigió un problema por el que la función de reproducción de registros fallaba con un error de "respuesta de comando inesperada" (crrev.com/c/5961142, Error: 42323342).
  • Códigos de error: Se corrigió el manejo de errores de ChromeDriver para que ya no fuerce el ajuste de todas las excepciones con una propiedad "code" en un "error de JavaScript" genérico. Esto garantiza que los errores estándar, como "referencia de elemento inactivo" (de call_function.js) y "estado de elemento no válido" (de la función CLEAR de Selenium Atoms), se propaguen con precisión al usuario (crrev.com/c/5937893, error: 42323409). Se mejoró el control de errores en GetElementTagName para interpretar correctamente la información faltante del nombre de la etiqueta como "el objeto no es un elemento" (crrev.com/c/5929087).
  • BiDi: Se solucionó un problema por el que no se podían inicializar las sesiones de BiDi cuando se usaba un perfil de usuario personalizado. La página cargada del perfil personalizado podría impedir que se inicie BiDiMapper. ChromeDriver ahora garantiza que la primera pestaña siempre cargue data:, para proporcionar un estado inicial limpio para el asignador (crrev.com/c/5960656, Bug: 366886096).
  • Modo Incógnito: Se corrigió un error que impedía que ChromeDriver creara pestañas nuevas mientras operaba en el modo Incógnito (crrev.com/c/5952980, error: 42323352).
  • Pruebas: Se corrigió la inestabilidad en la prueba de integración de testScriptNavigateRemoteToLocal (que fallaba en un 8.33%) y se agregaron pruebas de integración en C++ para reproducir y verificar la corrección de la condición de carrera (crrev.com/c/6010867, Bug: 378387680).
  • Pruebas: Se volvieron a habilitar numerosas pruebas de integración que antes eran inestables en Mac (testWindowMinimize) y Windows (ChromeDownloadDirTest.testFileDownloadAfterTab, InvalidCertificateTest.*), y a nivel global (testShadowDomFindElement, pruebas de capturas de pantalla de elementos). Se volvieron a trasladar temporalmente las pruebas css/css-scrollbars/ de WPT inestables de shell sin encabezado a shell de contenido (crrev.com/c/5953708, crrev.com/c/5948803, crrev.com/c/5941351, crrev.com/c/5941098, crrev.com/c/5959254, Bug: 42323825, Bug: 40848017, Bug: 40736504, Bug: 40176424, Bug: 40927590).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia del asignador chromium-bidi para incorporar las correcciones más recientes y las actualizaciones del protocolo (crrev.com/c/5953339, crrev.com/c/5865478, Bug: 4226). (Nota: Se revirtió brevemente un aumento de la asignación debido a fallas en WPT y, luego, se volvió a aplicar [crrev.com/c/5961113]).
  • Arquitectura: Se minimizó el uso del objeto de sesión local del subproceso en ChromeDriver para evitar errores de uso compartido del estado entre las pruebas y simplificar el control explícito de la sesión (crrev.com/c/5978486, Bug: 42323555). Se refactorizaron las pruebas de integración de C++ para usar un fixture de prueba compartido (crrev.com/c/5971474, Bug: 42323555).
  • Limpieza: Se quitaron las soluciones alternativas obsoletas específicas del modo "sin interfaz gráfica anterior", ya que el código heredado chrome-headless-shell ya no está presente en Chrome (crrev.com/c/5961602, Error: 42323387).
  • Limpieza: Se quitó el archivo java_tests.txt sin usar, un remanente de las pruebas de aceptación de ChromeDriver que se quitaron anteriormente (crrev.com/c/5970994, Error: 357737793).
  • Pruebas: Se agregó una prueba de integración en C++ para verificar que ChromeDriver no cree erróneamente sesiones paralelas con la misma URL de user-data-dir ni filtre URLs entre sesiones, lo que podría causar inestabilidad (crrev.com/c/5961137, error: 375312517).
  • Pruebas: Se garantizó que las instancias temporales de ChromeDriver creadas por las pruebas de integración se cierren lo más rápido posible para liberar recursos (crrev.com/c/5997970, error: 375974725).

ChromeDriver 131

Nuevas funciones

  • BiDi: Se actualizó la dependencia del asignador chromium-bidi a la versión 0.8.0, que incorpora las actualizaciones de protocolo y las correcciones de errores más recientes (crrev.com/c/5899240, crrev.com/c/5865478, Bug: 4226).
  • Acceso al DOM: Se agregó compatibilidad con shadow roots cerradas en el comando GetElementShadowRoot. Anteriormente, este comando devolvía un error NoSuchShadowRoot cuando se intentaba acceder a una raíz de sombra cerrada (crrev.com/c/5923865, Bug: 372834222).
  • Acceso al DOM: Se implementó la compatibilidad con los identificadores de ventanas y marcos, lo que permite que se devuelvan referencias a ventanas o marcos (incluidos los iframe de OOP) desde los scripts ejecutados para una mayor desreferenciación (crrev.com/c/5890437, crrev.com/c/5923555, Bug: 366272556, Bug: 40229283).
  • WebAuthn: Se expandió la API de automatización de WebAuthn para incluir las propiedades userName y userDisplayName (crrev.com/c/5905423, Error: 367915823).

Correcciones de errores

Cambios internos y refactorizaciones

  • Seguridad de la memoria (spanificación): Se reemplazó el uso de punteros no seguros por base::span en net::HttpUtil (crrev.com/c/5854420) y se migró base::File::WriteAtCurrentPos() a su equivalente basado en span (crrev.com/c/5818972). Se reescribieron los valores del puntero del mapa (p.ej., en std::map, std::unordered_map) a raw_ptr (crrev.com/c/5867189, Error: 329428315).
  • Estándares de C++: Se reemplazaron las macros de atributos de Abseil (ABSL_ATTRIBUTE_*) por macros de base/ estándar (crrev.com/c/5852373). Se evitaron copias no deseadas reemplazando cadenas o vectores de paso por valor con std::string_view o referencias const cuando correspondía, y se quitaron calificadores const no utilizados de los argumentos de std::string_view (crrev.com/c/5914620, crrev.com/c/5906184, Bug: 369952985).
  • Infraestructura: Se configuró Fuchsia para usar ChromeDriver y controlar web-engine (crrev.com/c/5867896, error: 40935291).
  • Pruebas: Se migró una prueba de WebAuthn de marcos delimitados del ejecutor de shell de contenido heredado a Chrome sin encabezado con ChromeDriver, ya que el ejecutor heredado pronto dejará de admitir la API de WebAuthn testdriver (crrev.com/c/5920770, Error: 372169469).

ChromeDriver 130

Nuevas funciones

  • BiDi: Se actualizó la dependencia de BiDi Mapper, y se obtuvieron las actualizaciones de protocolo y las correcciones de errores más recientes del upstream chromium-bidi (crrev.com/c/5850570, se volvió a aplicar crrev.com/c/5837065 después de revertir crrev.com/c/5840080; crrev.com/c/5717956, Bug: 4226).
  • BiDi: Se actualizó ChromeDriver para proporcionar unhandledPromptBehavior directamente al Mapper a través del comando session.new cuando se inicializa una sesión de BiDi. Con esto, se completa la migración de MapperOptions (crrev.com/c/5682934, crrev.com/c/5766077, Bug: 42323841, Bug: 356371297).
  • Pruebas: Se agregó compatibilidad con el argumento --chromedriver a la secuencia de comandos bisect-builds.py para las compilaciones de escritorio, lo que permite que la secuencia de comandos descargue y use automáticamente la versión correcta de ChromeDriver durante las bisecciones para las pruebas dependientes de WebDriver/ChromeDriver (crrev.com/c/5861048, Error: 352344089).

Cambios internos y refactorizaciones

  • Estándares de C++: Se resolvieron problemas de la "regla de los cinco" en varias clases. Debido a que el complemento de estilo de Chrome insiste en destructores fuera de línea sin aplicar también constructores de movimiento fuera de línea, el compilador borraba de forma implícita los operadores de movimiento y recurría a copias de forma silenciosa. Se agregaron estas declaraciones faltantes (crrev.com/c/5846757, Bug: 364788123).
  • Pruebas: Se limpió el resumen de los resultados de la prueba wptrunner reemplazando la cadena chrome codificada de forma rígida por el producto real utilizado y ocultando el artefacto command detallado del resultado del resumen (crrev.com/c/5825633, Error: 41494889).
  • Pruebas: Se corrigieron errores masivos en las pruebas de integración de ChromeDriver en macOS 15 (Mac15) duplicando los tiempos de espera específicos, ya que las pruebas en este SO requerían mucho más tiempo que en Mac14. También se agregaron cuatro pruebas de sensores virtuales a la lista de elementos ignorados debido a su inestabilidad (crrev.com/c/5817455, Bug: 354939744).
  • Pruebas: Se inhabilitaron las pruebas ChromeDriverSiteIsolation.testClickNavigateLocalToLocal inestables en Mac (crrev.com/c/5806894, Bug: 361521805) y las pruebas ChromeDriverTest.testClickElement*ObscuredByScrollBar inestables en Windows 11 (crrev.com/c/5804083, Bug: 360058651).
  • Pruebas: Se quitaron las pruebas de aceptación de ChromeDriver (que descargaban versiones anteriores de Chrome para probarlas con el ChromeDriver actual) debido a varios problemas de infraestructura. Es posible que se vuelvan a agregar más adelante en la CI con autoroll (crrev.com/c/5812142, Bug: 357737793).

ChromeDriver 129

Nuevas funciones

  • BiDi: Se actualizó el asistente de inicialización de la sesión de ChromeDriver para enviar un comando session.new al asignador de BiDi, lo que permite que el asignador controle directamente las capacidades. Este es el primer paso para quitar MapperOptions (crrev.com/c/5741432, Error: 356371297). (Nota: Se revirtió un cambio relacionado crrev.com/c/5754093 que proporcionaba el unhandledPromptBehavior procesado crrev.com/c/5755744 debido a una disminución en la cobertura de las pruebas).
  • Compute Pressure: Se agregaron nuevos comandos de extensión para la administración de fuentes de presión virtuales, lo que implementa la sección de automatización de la especificación de Compute Pressure. Estos comandos se analizan y reenvían a la capa de CDP (crrev.com/c/5666583, Error: 347031400).
  • Extensiones MV2: Se actualizaron las pruebas que ejercen el comportamiento de MV2 para usar ScopedTestMV2Enabler como parte de la prueba de campo en curso de la baja del Manifest V2 de extensión (crrev.com/c/5685054, Error: 339061151).

Correcciones de errores

  • Serialización clásica: Se hace un seguimiento de los objetos vistos cuando se serializa un Set en los resultados de ejecución de la secuencia de comandos de WebDriver Classic, lo que evita bucles infinitos y tolera las anulaciones de Array.prototype.includes (crrev.com/c/5765833, Bug: 357472850). (Nota: Posteriormente, se revirtió crrev.com/c/5773175 debido a una regresión de WPT).

Cambios internos y refactorizaciones

ChromeDriver 128

Nuevas funciones

  • Capacidades: Se permitió el uso de un diccionario para la capacidad unhandledPromptBehavior, lo que se alinea con las estructuras de capacidad estándar, aunque el Mapper aún no lo respeta por completo (crrev.com/c/5692204, crrev.com/c/5682934, Error: 42323841).
  • Startup: Se agregó el argumento de línea de comandos --ignore-explicit-port a ChromeDriver. Esta solución alternativa temporal obliga a ChromeDriver a ignorar cualquier puerto proporcionado de forma explícita y, en cambio, a buscar y vincularse a un puerto libre, lo que resuelve las condiciones de carrera de puertos TCP durante la ejecución de pruebas de la plataforma web (se prevé que se quite después de M132) (crrev.com/c/5724574, crrev.com/c/5703976, Bug: 42323836).

Correcciones de errores

  • Sensores: Se corrigió el comando ExecuteUpdateVirtualSensor para que use SendCommand() en lugar de SendCommandAndGetResult(), ya que el comando setSensorOverrideReadings de CDP no devuelve un valor (crrev.com/c/5703589).
  • FedCM: Se corrigió una condición de carrera en las pruebas de ChromeDriver de FedCM. Para ello, ya no se declara que se devuelve NoSuchDialog cuando se espera un diálogo, lo que evita fallas si el diálogo aparece demasiado rápido (crrev.com/c/5713515, error: 346530330).
  • Pruebas: Se volvieron a habilitar las pruebas del autenticador virtual de WebAuthn en Mac después de que se corrigió el problema subyacente (crbug.com/40233722) (crrev.com/c/5635806, Error: 329130177).
  • Mensajes de error: Se corrigió un error tipográfico en el mensaje de error del comando execute/async (crrev.com/c/5697913).

Cambios internos y refactorizaciones

ChromeDriver 127

Correcciones de errores

  • Estabilidad: Se corrigió una falla de ChromeDriver que ocurría cuando se recibía un comando target.detachFromTarget (o un evento target.detachedFromTarget) mientras el cliente de Herramientas para desarrolladores procesaba activamente otros comandos, lo que impedía la liberación prematura de los objetos WebView y DevToolsClient (crrev.com/c/5527584, Error: 339773537).
  • Estabilidad: Se corrigió un problema por el que el comando Switch To Window podía devolver incorrectamente un "error desconocido" si se desconectaba una vista web durante la ejecución del comando. Ahora, se ignora correctamente el error interno "no se encontró la vista web", lo que genera una respuesta estándar de "no se encontró la ventana" si la ventana de destino se cerró (crrev.com/c/5583730, Error: 338616700).
  • Estabilidad: Se garantizó que ChromeDriver tolera la separación del destino mientras se actualiza la lista interna de WebView. Si un destino se desconecta durante la actualización, ChromeDriver ahora volverá a intentarlo en lugar de devolver un error no estándar, lo que reduce la inestabilidad en entornos en los que las ventanas se crean y destruyen rápidamente (crrev.com/c/5565103, Bug: 338616700, Bug: 4771).
  • Navegación: Se agregó lógica a ChromeDriver para esperar una navegación detectada por el extremo remoto mientras se buscan elementos. Esto evita que ChromeDriver devuelva un error no estándar o falle con un DCHECK cuando una navegación coincide con una operación de búsqueda de elementos (crrev.com/c/5563113, revierte crrev.com/c/5563420, vuelve a aplicar crrev.com/c/5562089, Error: 4771).
  • BiDi: Se corrigió una condición de carrera entre ChromeDriver y BiDiMapper durante la creación de la sesión. ChromeDriver ahora espera a que el comando browsingContext.getTree devuelva una lista no vacía antes de finalizar el comando NewSession, lo que garantiza que la pestaña predeterminada recién creada se registre correctamente (crrev.com/c/5575497, Bug: 341048786, Bug: 1503101).
  • BiDi: Se corrigió un problema por el que el foco permanecía en la pestaña en segundo plano de BiDiMapper después de la creación de la sesión en lugar de en la pestaña del usuario activo, ya que se otorgaba el foco de forma explícita a la primera pestaña del usuario (crrev.com/c/5594070, error: 341048786, error: 1503101).
  • BiDi: Se detuvo el intento de ChromeDriver de adjuntar un Target cuando se controlan comandos de BiDi (como browsingContext.close) para evitar que los comandos de CDP se detengan indefinidamente si se abre un mensaje del usuario, y se delega el control por completo a la capa de BiDi ya conectada (crrev.com/c/5541915, se revierte crrev.com/c/5539818, se vuelve a aplicar crrev.com/c/5522393, error: 4758).
  • FedCM: Se corrigió la falla de la prueba de WPT fedcm-loginhint.https.html en la que un diálogo se marcó incorrectamente como cerrado. Ahora, el estado solo se actualiza si la operación selectAccount se realiza correctamente (crrev.com/c/5398379, Bug: 331237776).
  • Pruebas: Se corrigió una falla de DCHECK durante el análisis de JSON cuando un carácter alcanzaba exactamente el límite de kExtendedASCIIStart (crrev.com/c/5565276, Bug: 40284755).
  • Pruebas: Se corrigió la prueba scrollend-event-fires-to-iframe-window.html de WPT usando el elemento iframe como origen de desplazamiento y redondeando las entradas de movimiento del puntero a números enteros, lo que evita errores de ChromeDriver con posiciones táctiles fraccionarias (crrev.com/c/5570150, Bug: 340956654).
  • Pruebas: Se mejoraron los diagnósticos en las pruebas de integración de ChromeDriver imprimiendo las rutas de acceso intentadas cuando run_py_tests.py no logra ubicar el objeto binario del navegador (crrev.com/c/5604204, Error: 4781).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia del asignador de BiDi para mantenernos al día con las últimas actualizaciones del protocolo y correcciones de errores (crrev.com/c/5614670, crrev.com/c/5593796, crrev.com/c/5537892, crrev.com/c/5471839, Bug: 4226).
  • Se reemplazaron los usos de NOTREACHED() por NOTREACHED_IN_MIGRATION() en todo el directorio chrome/ en preparación para que NOTREACHED() sea estrictamente [[noreturn]] (crrev.com/c/5539004, Bug: 40580068).
  • Se habilitó la generación de THIRD_PARTY_NOTICES.txt para ChromeDriver con la herramienta licenses.py para cumplir con los requisitos de distribución (crrev.com/c/5596355, error: 4777).
  • Se quitó la compatibilidad con run_wpt_tests.py para content_shell, ya que la cobertura de WPT de Chromium está en plena transición a headless_shell + ChromeDriver (crrev.com/c/5589930). Se reorganizaron los parámetros de configuración wptrunner para que sean específicos del embedder y así adaptarse a este cambio sin que se vea afectado el funcionamiento (crrev.com/c/5589793, Bug: 338412391).
  • Se consolidó la lógica para la detección y el control de diálogos de JavaScript trasladándola de JavaScriptDialogManager directamente a DevToolsClientImpl, lo que eliminó la clase de administrador independiente para simplificar las pruebas y el razonamiento (crrev.com/c/5545630, Bug: 4757).
  • Se inhabilitó PureBidiTest.testBrowsingContextTreeIsNotEmpty en Mac debido a su inestabilidad (crrev.com/c/5588665, error: 343891977).
  • Se actualizaron las expectativas de WPT de BiDi para tener en cuenta las actualizaciones recientes de Mapper (crrev.com/c/5615110, Bug: 4226, Bug: 324436866).
  • Se agregaron pruebas unitarias para WebView::SendBidiCommand y BidiTracker para aumentar la cobertura del código (crrev.com/c/5588400, Bug: 341048786, Bug: 1503101).

ChromeDriver 126

Nuevas funciones

  • BiDi: Se actualizó ChromeDriver para que proporcione el parámetro de configuración --disable-background-timer-throttling cuando se inicia el navegador para una sesión de WebDriver BiDi, lo que evita que se limite la velocidad de las pestañas en segundo plano (crrev.com/c/5515013, error: 4762).
  • BiDi: Se agregó compatibilidad con BiDi Mapper para enviar mensajes de depuración (sendDebugMessage) cuando se requiere un registro detallado. ChromeDriver marca estos eventos como bidi messages para el análisis, aunque BidiTracker actualmente los ignora (crrev.com/c/5465782, error: 4753).
  • Clásico: Se implementó la aceptación automática de cualquier diálogo de beforeunload (alertas), de conformidad con el estándar de WebDriver que indica que nunca se deben mostrar en una sesión clásica (crrev.com/c/5517510, Error: 4757).

Correcciones de errores

  • Clásico: Se quitó la limitación redundante de intentos máximos en la lógica de recuperación de elementos. Ahora, la recuperación solo está limitada por el tiempo de espera implícito, lo que evita situaciones en las que la operación podría fallar de forma prematura y devolver incorrectamente un error NoSuchExecutionContext no estándar (crrev.com/c/5478668, Bug: 4379).
  • Classic: Se corrigió una regresión que provocaba que ChromeDriver respondiera con un error javascript error en lugar de un error invalid selector cuando una solicitud de recuperación usaba una estrategia de ubicación no válida (crrev.com/c/5490662, error: 4743).
  • Clásico: Se garantizó que los comandos de ventana en Android (Maximizar, Minimizar, Pantalla completa) devuelvan el error unsupported operation que cumple con el estándar en lugar de continuar, ya que el navegador de Android no admite estas acciones (crrev.com/c/5490224, Error: 4689).
  • Classic: Se corrigió ChromeDriver para que nunca devuelva el código de error interno kChromeNotReachable. Ahora devuelve correctamente el error estándar kSessionNotCreated cuando el cliente HTTP no puede conectarse al navegador (crrev.com/c/5476390, Bug: 4379).
  • Classic: Se corrigió ChromeDriver para que nunca devuelva el error no estándar kNoSuchExecutionContext cuando se ejecutan comandos de ventana (crrev.com/c/5483606, Bug: 4379).
  • Classic: Se quitó el código de error kForbidden no utilizado y no compatible de la lista de códigos de error compatibles (crrev.com/c/5476927, error: 4379).
  • BiDi: Se actualizó ChromeDriver para que le solicite al usuario que confirme antes de cerrar la pestaña Mapper dedicada, lo que se alinea con los cambios de chromium-bidi upstream (crrev.com/c/5508600, Bug: 4761).

Cambios internos y refactorizaciones

ChromeDriver 125

Nuevas funciones

  • Posición del dispositivo: Se agregaron comandos de ChromeDriver para la administración de la posición del dispositivo, lo que admite la sección Automatización de la especificación de posición del dispositivo. Esto permite anular la postura del dispositivo establecida por el hardware y quitar la anulación a través de comandos de extensión (crrev.com/c/5437993, Bug: 330376761).

Correcciones de errores

  • BiDi: Se cambió el almacenamiento intermedio del comando BiDi entrante id de un Double a base::Value. Esto garantiza que el id se repita con precisión en la respuesta sin un punto decimal final inesperado o una parte fraccionaria después de la serialización de JSON (crrev.com/c/5444225, error: 4676).
  • FedCM: Se volvió a implementar el cambio para habilitar CORS en el extremo de aserción de ID después de que los IDP estuvieron listos (crrev.com/c/5440132, revirtiendo crrev.com/c/5381316, volviendo a implementar crrev.com/c/5370086, Bug: 40284123).
  • FedCM: Se corrigió un error por el que un diálogo se marcaba de forma incorrecta como cerrado. Para ello, se garantizó que solo se marque como cerrado si el comando selectAccount se ejecuta correctamente. Esto resuelve las fallas de pruebas cuando se llama a selectAccount sin un selector de cuentas esperado (crrev.com/c/5398379, Bug: 331237776). Se evitó llamar a fedcm_get_and_select_first_account cuando no se espera un selector de cuentas para evitar que se active este error (crrev.com/c/5398800).
  • Pruebas: Se corrigió una falla en la prueba popover-light-dismiss.html de WPT combinando secuencias de acciones y usando el documento del marco principal como origen para la acción pointerUp, lo que evita que ChromeDriver envíe incorrectamente eventos pointerUp simultáneos en los marcos (crrev.com/c/5402096, Error: 325981758).
  • Pruebas: Se corrigió wptrunner para que reenvíe correctamente el resultado de stderr (incluidos los registros del navegador escritos cuando se usa --enable-chrome-logs) al artefacto stderr en lugar de crash_log, y se trasladaron los errores del arnés (que contienen el seguimiento de pila del navegador) a crash_log (crrev.com/c/5437023, error: 41494889).
  • Pruebas: Se corrigió wptrunner para enrutar los registros del navegador al artefacto de prueba correcto agrupando el resultado por el proceso de ChromeDriver, lo que evita registros intercalados y huérfanos durante la ejecución de pruebas paralelas (crrev.com/c/5320681, Error: 41494889).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia de BiDi Mapper, lo que integró las mejoras más recientes del protocolo y las correcciones de errores (crrev.com/c/5433300, crrev.com/c/5393442, error: 4226). (Nota: Se revirtió una actualización anterior crrev.com/c/5374366 crrev.com/c/5374839 y, luego, se volvió a aplicar con pruebas no confiables inhabilitadas y licencias actualizadas crrev.com/c/5374914).
  • Diagnóstico: Se canalizó el StackTrace de Chrome en las excepciones de ChromeDriver. Esto muestra el seguimiento de pila del navegador en el mensaje de error cuando se borra una sesión debido a una falla de la página o la pestaña (p.ej., punteros colgantes en Mac), lo que mejora significativamente la capacidad de depuración (crrev.com/c/5374371, Bug: 330009945).
  • Pruebas: Se inhabilitó temporalmente la prueba de integración inestable testTakeLargeElementViewportScreenshot en Mac (específicamente mac-arm64) (crrev.com/c/5447515, error: 333826980).
  • Pruebas: Se actualizaron los argumentos de inicio de ChromeDriver en los entornos de prueba (CEL) para que coincidan con la sintaxis de Selenium 4 y versiones posteriores (crrev.com/c/5448812, error: 308885357).
  • Pruebas: Se extrajo la línea de comandos de chrome exacta que se usó para ejecutar cada prueba de WPT desde el registro de chromedriver en un artefacto de ResultDB llamado command. Esto facilita la depuración manual con run_blink_wptserve.py (crrev.com/c/5441189, error: 41494889).
  • Dependencias: Se quitó Closure de la lista de dependencias de selenium-atoms y, en consecuencia, se quitó de los avisos de terceros de ChromeDriver (crrev.com/c/5424804, error: 4226).
  • Dependencias: Se quitaron las dependencias no utilizadas en dynamic_annotations en todo el repositorio base (crrev.com/c/3398908, Error: 1282422).
  • Formato: Se aplicó la nueva configuración de clang-format a los encabezados de Windows problemáticos (crrev.com/c/5367127, Error: 329138753).

ChromeDriver 124

Nuevas funciones

  • BiDi: Se agregó un paso de compilación para reducir el script de BiDiMapper antes de incorporarlo a ChromeDriver, ya que el asignador de fuentes ahora se descarga sin reducir desde CIPD (crrev.com/c/5310075, error: 4226).
  • WebAuthn: Se agregó el comando SetCredentialProperties, que permite a los clientes actualizar las marcas de copia de seguridad para una credencial de WebAuthn (crrev.com/c/5296389, Bug: 40945430).
  • WebAuthn: Se expusieron las marcas de copia de seguridad de WebAuthn a través de WebDriver agregando defaultBackupEligibility y defaultBackupState al comando "Add Virtual Authenticator", y backupEligibility y backupState al comando "Add Credential" (crrev.com/c/5297117, Bug: 40945430).
  • Pruebas: Se agregó compatibilidad con el argumento de línea de comandos --failfast a las pruebas de integración de ChromeDriver en Python, lo que detiene la ejecución de la prueba en el primer error para ayudar con la depuración (crrev.com/c/5374546).
  • Pruebas: Se agregó compatibilidad con content-shell para el comando SetRPHRegistrationMode de WebDriver a través de las APIs de testdriver-vendor.js (crrev.com/c/5205730, Error: 1359103).

Correcciones de errores

  • Estabilidad: Se trasladó la verificación de vencimiento del tiempo de espera dentro del cuerpo del bucle de sondeo y espera en ChromeImpl::SetWindowBounds. Se corrigió un problema por el que, con una carga alta, el tiempo de espera podía vencer antes de que se produjera la primera iteración del bucle (crrev.com/c/5366899, Bug: 4642).
  • Rendimiento: Se minimizó el tiempo de espera en ChromeImpl::SetWindowBounds aplicando solo una retirada exponencial si los límites de la ventana aún no alcanzaron el estado deseado, lo que reduce la latencia de configuración de WPT (crrev.com/c/5366457, Error: 4642).
  • Inicio: Se actualizó ChromeDriver para que use --user-data-dir en lugar de --data-path cuando se especifica el directorio de datos para content_shell, lo que se alinea con la forma en que lee el puerto activo de DevTools (crrev.com/c/5226609, Bug: 1295373).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia de BiDi Mapper, lo que permite capturar las correcciones y funciones más recientes del protocolo (crrev.com/c/5374366, crrev.com/c/5349491, crrev.com/c/5317650, Bug: 4226). (Nota: Se revirtió brevemente un aumento y, luego, se volvió a aplicar debido a fallas en las pruebas crrev.com/c/5374839, crrev.com/c/5368680, crrev.com/c/5319423).
  • Se reemplazaron los usos de absl::optional por std::optional en toda la base de código después de la transición de absl::optional a un alias de tipo (crrev.com/c/5296147, Bug: 1500249).
  • Se extendió la cobertura de MiraclePtr (raw_ptr) a contenedores estándar adicionales, incluidos std::list, std::unordered_set, base::flat_set, std::stack y std::queue (crrev.com/c/5306923, Error: 325302189).
  • Se convirtió WriteBigEndian() para usar conversiones de bytes base::numerics o BigEndianWriter (que ahora acepta base::span), lo que mejora la seguridad cuando se escriben bytes big-endian (crrev.com/c/5202348, error: 1490484).
  • Se cambió a ChromeDriver para ejecutar pruebas de la plataforma web (WPT) con content_shell (excepto las pruebas virtuales y las pruebas de referencia pendientes de correcciones de errores upstream) (crrev.com/c/5347371, Bug: 40214293).
  • Se convirtieron todas las pruebas web existentes de Generic Sensor para que usen test_driver.js y sensores virtuales en lugar de simulaciones de JS/Mojo, lo que se alinea con la nueva sección Automation de la especificación de Generic Sensor (crrev.com/c/4770867, Bug: 1278377, Bug: 1471996).
  • Se mejoró la generación de licencias agregando append_notices.py para generar créditos para las dependencias de BiDiMapper y actualizando la invocación de licenses.py para que dependa estrictamente del README de selenium-atoms para los avisos de terceros (crrev.com/c/5350601, crrev.com/c/5339957, error 4729, error 4735).

ChromeDriver 123

Nuevas funciones

  • FedCM: Se muestran diálogos modales para los flujos de botones de una sola cuenta, lo que incluye la incorporación de compatibilidad con vistas modales en la interfaz de automatización (crrev.com/c/5231438, error: 1518356).
  • FedCM: Se implementó la compatibilidad con ChromeDriver para abrir vínculos dentro de los diálogos de FedCM, tratándolos como botones para simplificar la automatización (crrev.com/c/5225543, error: 1513520).
  • Sensores: Se modificaron los comandos de sensores virtuales de WebDriver para leer los ángulos de Euler (alfa, beta y gamma) en lugar de los cuaterniones, lo que cumple con las actualizaciones recientes de las especificaciones de los sensores de orientación. Las capas internas de CDP y de servicios aún usan cuaterniones a través de un paso de conversión (crrev.com/c/5229177, Bug: 1506995, Bug: 1520912, Bug: 1520919).

Correcciones de errores

  • Classic: Se corrigió un problema por el que devolver un nodo desde un marco diferente a través de una secuencia de comandos generaba incorrectamente un error de StaleElementReference. Ahora, devuelve correctamente un JavaScriptError para cumplir con el estándar de WebDriver (crrev.com/c/5222746, error: 4668).
  • Pruebas: Se corrigió una prueba de eventos de sobredesplazamiento que fallaba en Chrome/ChromeDriver porque el arrastre táctil se extendía fuera de los límites de la ventana. Ahora, el arrastre está correctamente restringido (crrev.com/c/5297676, Error: 40832230).
  • Pruebas: Se corrigieron las pruebas de MIDI de open-close.https.html para que no construyan promesas de forma innecesaria, lo que evita los rechazos de promesas no controlados que hacían que ChromeDriver fallara en la prueba (crrev.com/c/5239869, Error: 1499775).
  • Pruebas: Se corrigió el conjunto de permisos en las pruebas de wpt_internal/system-wake-lock/idlharness* en las que test_driver.set_permission(...) pasaba incorrectamente false en lugar de null o un WindowProxy, lo que confundía a ChromeDriver (crrev.com/c/5271087, Error: 40287920).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia de BiDi Mapper, lo que permite recuperar las correcciones y funciones más recientes (crrev.com/c/5205452, crrev.com/c/5255321, crrev.com/c/5238148, crrev.com/c/5237125, Bug: 4226). (Nota: Se revirtió brevemente un aumento y, luego, se volvió a aplicar debido a errores de compilación crrev.com/c/5238855).
  • Se mejoró el estado del código de ChromeDriver eliminando las conversiones estáticas no seguras de una clase base a una clase derivada en ChromeImpl y DevToolsClientImpl, lo que evita un posible comportamiento indefinido (crrev.com/c/5277062, crrev.com/c/5272562, Bug: 4702).
  • Se eliminaron las conversiones inseguras en WebViewImpl (crrev.com/c/5272230, error: 4702).
  • Se quitaron las formas obsoletas de base::Base64Encode() y se migró a la variante de devolución std::string más reciente en lugar de usar parámetros de salida (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214).
  • Se actualizaron todas las directivas #include para que base/... use "" en lugar de <> para garantizar la coherencia (crrev.com/c/5237376, error: 1500249).
  • Se migraron todos los archivos DIR_METADATA en chrome/test/ a Buganizer (crrev.com/c/5284119, error: 1518875).
  • Se evitó que wptrunner cree un archivo - local cuando se pasa -vvv quitando el parámetro de chromedriver --log-path=- innecesario, ya que stderr ya se redirecciona a stdout (crrev.com/c/5282721).
  • Se mejoró wptrunner para resumir los resultados de las pruebas cuando se producen regresiones, incluidos explícitamente los resultados de las subpruebas y los seguimientos de pila de ChromeDriver directamente en el resultado del resumen (crrev.com/c/5238662, Bug: 1521922).
  • Se simplificó la depuración de las pruebas de integración de ChromeDriver con la introducción del parámetro --remote-chromedriver-port en run_py_tests.py, lo que permite la conexión a una instancia existente que se ejecuta en un depurador (crrev.com/c/5237254, error: 4693).
  • Se evitaron las llamadas de base::HexEncode() y RandBytes() con dos argumentos para permitir que el compilador deduzca el tamaño correcto, lo que simplifica el código (crrev.com/c/5241357).

ChromeDriver 122

Correcciones de errores

  • BiDi: Se actualizó la serialización de nodos profundos para incluir loaderId, lo que permite que ChromeDriver y BiDi Mapper hagan referencia a los nodos y los desreferencien correctamente sin viajes de ida y vuelta excesivos (crrev.com/c/5116240, error: 1420968).
  • Capacidades: Se actualizó ChromeDriver para pasar la capacidad acceptInsecureCerts a BiDi Mapper inmediatamente después del inicio, lo que evita condiciones de carrera en las que la capacidad podría aplicarse demasiado tarde (crrev.com/c/5125711, Bug: 4643).
  • Classic: Se rediseñó la generación de referencias de elementos para usar un formato <frame_id>.<loader_id>.<backend_node_id>, lo que permite que ChromeDriver distinga de forma definitiva entre referencias de elementos válidas, desconocidas y obsoletas en las navegaciones de marcos y las actualizaciones del DOM (crrev.com/c/5094519, Bug: 4379).
  • Classic: Se corrigió un problema por el que el comando window/handles podía fallar con un error de "no such window" si un destino recién creado se cerraba (p.ej., en una condición de carrera) antes de que ChromeDriver pudiera adjuntarse a él (crrev.com/c/5147409, Error: 1506833).
  • FedCM: Se agregó un objeto de escucha de eventos interno para notificar cuando se cierra un diálogo de FedCM, lo que evita que el comando dialogtype devuelva datos obsoletos si el diálogo se cerró de forma externa (p.ej., a través de AbortController.abort) (crrev.com/c/5067504, Bug: 1506292).
  • FedCM: Se quitó el prefijo del proveedor del comando ClickDialogButton, ya que ahora se aprobó en la especificación de FedCM (crrev.com/c/5092527, error 1499341).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia de BiDi Mapper a la versión más reciente (crrev.com/c/5205452, error: 4226).
  • Se redujo el tráfico de ChromeDriver y del protocolo de Herramientas para desarrolladores de Chrome (CDP) quitando las llamadas Page.enable redundantes que se envían desde cada DevToolsEventListener, ya que DevToolsClientImpl ya controla esto por destino (crrev.com/c/5088789, error: 4600).
  • Se cambiaron todos los compiladores de Wptrunner para content_shell al estado experimental, ya que actualmente no se admite por completo la ejecución de pruebas en modo de protocolo mientras la integración de ChromeDriver está en curso (crrev.com/c/5225148, Bug: 1474702).
  • Se omitieron las pruebas que requieren window.test_driver_internal.get_computed_role en content_shell, ya que aún no se implementó, lo que evita fallas de TypeError (crrev.com/c/5189678, Bug: 1517744).
  • Se volvió a incluir la refactorización para usar marcas IS_OZONE_{X11, WAYLAND} independientes de la plataforma en lugar de OZONE_PLATFORM_* (crrev.com/c/5086329, error: 1500494).
  • Se actualizó la dependencia de selenium-atoms a la revisión más reciente (crrev.com/c/5110808, error: 4662).
  • Se corrigió la lógica en las pruebas de SnapEvents cuando se ejecutan en el objeto binario completo de Chrome redondeando las entradas de movimiento del puntero, aplicando el parámetro origin para los desplazamientos y usando aserciones de aproximación (assert_approx_equals) para controlar las discrepancias fraccionarias de desplazamiento o desplazamiento (crrev.com/c/5097343).
  • Se agregó el asistente StringPrintfNonConstexpr() para distinguir de StringPrintf() cuando las cadenas de formato no son constantes de tiempo de compilación (crrev.com/c/4950568, Bug: 1371963).
  • Se garantizó que el escape de la macro chromium::import! de Rust use una función inyectiva para evitar colisiones en los nombres de destino de GN generados (crrev.com/c/5132119, Bug: 1512174).
  • Se limpió la implementación de ScopedTempDirWithRetry agregando un constructor y devoluciones anticipadas en el destructor (crrev.com/c/5113843).

ChromeDriver 121

Nuevas funciones

  • Pruebas: Se agregó compatibilidad para ejecutar pruebas integradas de ChromeDriver (chromedriver_py_test) en chrome-headless-shell, además del navegador Chrome estándar en los bots de compilación. Esto incluye la capacidad de descubrir el archivo binario del navegador según el parámetro --browser-name y ejecutar de forma condicional conjuntos de pruebas específicos (crrev.com/c/4995189, crrev.com/c/4989442, Bug: 4358).

Correcciones de errores

  • Estabilidad: Se inicializó el valor predeterminado KeyboardLayoutEngine como StubKeyboardLayoutEngine para evitar fallas de ChromeDriver causadas por un acierto de DCHECK en KeyboardLayoutEngineManager::SetKeyboardLayoutEngine (crrev.com/c/5017859, error: 4625).
  • Estabilidad: Se corrigió un problema de inestabilidad en el que ChromeDriver podía fallar si el subproceso de la sesión solicitaba cerrar una conexión después de que el cliente ya había solicitado cerrar la misma conexión (crrev.com/c/4994636, error: 4606).
  • Administración de recursos: Se corrigieron las pérdidas de recursos en las pruebas de integración de ChromeDriver (RemoteBrowserTest) garantizando que el proceso del navegador finalice incluso si un comando de ChromeDriver arroja una excepción (crrev.com/c/5009554, Error: 4614).
  • Administración de recursos: Se implementó lógica en las pruebas de integración de ChromeDriver para detectar y finalizar cualquier proceso del navegador abandonado por el proceso de ChromeDriver (crrev.com/c/5014093, Error: 4617).
  • Inicio: Se corrigió un problema por el que chrome-headless-shell devolvía una lista de destinos vacía, lo que impedía la creación de sesiones, agregando el argumento data:, a la línea de comandos del navegador cuando el nombre del navegador era chrome-headless-shell (crrev.com/c/5010392, crrev.com/c/5009535, Bug: 4615, Bug: 4358).
  • FedCM: Se agregó un nuevo evento para notificar cuando se cierra un diálogo de FedCM, lo que garantiza que dialogtype y otros comandos no devuelvan datos obsoletos si el diálogo se cerró de forma externa (p.ej., a través de AbortController.abort) (crrev.com/c/5067504, Bug: 1506292).
  • Pruebas: Se corrigieron y volvieron a habilitar todas las pruebas de integración de ChromeDriver que se habían inhabilitado anteriormente para chrome-headless-shell en Windows (crrev.com/c/5027594, Bug: 4358).
  • Pruebas: Se debilitaron las aserciones demasiado estrictas en testElementRegionTest para alinearse con el estándar de WebDriver, lo que resolvió la inestabilidad causada por las peculiaridades de la renderización del navegador (crrev.com/c/5017865, Bug: 4526).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia del asignador de BiDi (crrev.com/c/4994305, error: 4226).
  • Se revirtió el uso de IS_OZONE_{X11, WAYLAND} en favor de OZONE_PLATFORM_* debido a un error (crrev.com/c/5086571, se revirtió crrev.com/c/5083096, error: 1500494).
  • Se migró el código en commands_unittest.cc para usar base::BindLambdaForTesting en lugar de base::Passed, que dejó de estar disponible (crrev.com/c/5078589, Bug: 1326449).
  • Se refactorizó session.new para extraer el control de capacidades de código repetitivo (p.ej., testName, binary, browserName) en un método dedicado y se garantizó que el comando respete las capacidades de manera similar al comando clásico (crrev.com/c/5004665, crrev.com/c/5001510, Bug: 4358, Bug: 4610).
  • Se quitó el uso del encabezado base/strings/string_piece_forward.h obsoleto (crrev.com/c/5008994, error: 691162).
  • Se preparó la transición de net::IOBuffer a una clase no propietaria con net::IOBufferWithSize para los casos de propiedad (crrev.com/c/4996470, Bug: 1493389).
  • Se introdujo y utilizó base::RandBytesAsVector() para evitar almacenar valores binarios en cadenas (crrev.com/c/5018451).
  • Se inhabilitaron varias pruebas de integración de Python que fallaban de forma constante en Mac para evitar que generaran compilaciones correctas debido a la exoneración del análisis de LUCI (crrev.com/c/4998771, Bug: 1486604, Bug: 1486520, Bug: 1486474, Bug: 1481915).
  • Se cambió el nombre de webdriver_tests_suite (y wpt_tests_suite) a chrome_wpt_tests para estandarizar las convenciones de nomenclatura del conjunto de WPT en los compiladores de prueba de Linux (crrev.com/c/5014293, error: 1474702).
  • Se cambió el propósito del comando ConfirmIdpLogin de WebDriver de FedCM a un comando ClickDialogButton más extensible que acepta un parámetro DialogButton (crrev.com/c/5003255, Bug: 1499341).
  • Se actualizó la dependencia de crossbench con numerosas correcciones y funciones, incluido un mejor análisis del tipo de controlador, stubs de red y compatibilidad con iOS (crrev.com/c/5009937).
  • Se agregó el #include <string> faltante a chrome_finder.h para cumplir con IWYU (crrev.com/c/4994605, error: 957519).

ChromeDriver 120

Nuevas funciones

  • BiDi: Se agregó compatibilidad con los comandos session.new y session.end, lo que permite a los usuarios crear y finalizar sesiones directamente a través de comandos de BiDi (crrev.com/c/4941941, Bug: 4496).
  • BiDi: Se agregó compatibilidad con el comando session.status PureBiDi, lo que permite a los usuarios establecer una conexión WebSocket que no está vinculada a ninguna sesión y recuperar el estado de la sesión (crrev.com/c/4938596, error: 4496). (Se volvió a publicar después de una reversión anterior en crrev.com/c/4922097)
  • BiDi: Se actualizó la dependencia de BiDi Mapper y se alineó con el nuevo proceso de ejecución de Mapper simplificado (crrev.com/c/4952609, error: 4226).
  • Sensores: Se implementaron comandos de sensores virtuales en browser_protocol.pdl y la capa de CDP (dominio de emulación), y se agregó compatibilidad con la sección Automation de la especificación de Generic Sensor (crrev.com/c/4770864, Bug: 1278377).
  • Sensores: Se agregaron comandos de extensión de ChromeDriver para la administración de sensores virtuales, que traducen los parámetros de WebDriver a las nuevas llamadas de CDP (crrev.com/c/4770866, error: 1278377).
  • Sensores: Se agregó una ruta de instrucciones de código content_shell para la manipulación de sensores virtuales a través de testdriver.js, lo que omite ChromeDriver por completo para las pruebas web (crrev.com/c/4770865, error: 1278377).
  • Mitigaciones del seguimiento: Se agregó compatibilidad con ChromeDriver para las mitigaciones del seguimiento de rebote (DIPS), lo que permite la automatización de la especificación nav-tracking-mitigations (crrev.com/c/4873672, error: 1474656). (Nota: Este cambio se revirtió temporalmente debido a errores de prueba en Mac en crrev.com/c/4938394)

Correcciones de errores

  • Inicio: Se agregó la detección de Headless Shell a ChromeDriver, lo que le permite buscar el archivo binario chrome-headless-shell si se solicita a través de capacidades y no se proporciona una ruta de acceso explícita (crrev.com/c/4987262, Error: 4358). (Se volvió a enviar después de una reversión anterior en crrev.com/c/4984449)
  • WebSockets: Se implementó compatibilidad parcial con el protocolo de enlace de cierre de WebSocket, lo que garantiza que ChromeDriver responda con un marco CLOSE cuando se recibe uno del extremo remoto (crrev.com/c/4931500, Error: 4499).
  • Permisos: Se expuso options.disclaim_responsibility como una marca de compilación para permitir que las compilaciones de proveedores (como Microsoft Teams) la desactiven, lo que evita que las solicitudes de permisos de macOS detengan la automatización de pruebas (crrev.com/c/4929495, error 1223643).
  • Cumplimiento del estándar de C++: Se corrigió el comportamiento indefinido (UB) detectado por UBSan cuando se convertía un valor doble fuera del rango a un valor int agregando verificaciones de rango (crrev.com/c/4980055, error: 1394755).
  • FedCM: Se quitó la compatibilidad con la sintaxis de encabezado anterior, lo que garantiza el cumplimiento de la sintaxis estándar de login-status-http (crrev.com/c/4957073, error: 1381501).

Cambios internos y refactorizaciones

  • Se agregó la prueba de integración testReturnFrameElement para verificar el comportamiento de ChromeDriver en relación con el tratamiento de window.frameElement como referencia obsoleta (crrev.com/c/4983549, Bug: 4477).
  • Se mejoró el registro. Para ello, se garantiza que ChromeDriver registre las rutas de acceso específicas en las que intenta ubicar el objeto binario del navegador (crrev.com/c/4976116, error: 4539).
  • Se cambiaron los nombres de varias funciones base::Time para que sean más descriptivos (p.ej., FromDoubleT() a FromSecondsSinceUnixEpoch()) (crrev.com/c/4956111).
  • Se refactorizaron el constructor net::StringIOBuffer y las instanciaciones IOBuffer para evitar copias innecesarias de cadenas y asignaciones de longitud cero (crrev.com/c/4938384, crrev.com/c/4959174).
  • Se limpió el manejo de cadenas reemplazando base::StrCat por + cuando correspondía y utilizando base::AppendHexEncodedByte() (crrev.com/c/4963465, crrev.com/c/4977165).
  • Se cambió el nombre de DIR_SOURCE_ROOT a DIR_SRC_TEST_DATA_ROOT en todas las pruebas de //chrome* para mayor claridad (crrev.com/c/4916045, Bug: 1264897).
  • Se inhabilitaron las pruebas de PureBidiTest poco confiables en los compiladores de Mac (crrev.com/c/4983555, error: 1496826).

ChromeDriver 119

Nuevas funciones

  • BiDi: Se implementó la compatibilidad para resolver referencias débiles a objetos locales que devuelve el extremo remoto durante las llamadas a funciones remotas (crrev.com/c/4886760, error: 4536).
  • FedCM: Se agregó el comando confirmidpsignin con prefijo de proveedor para admitir la prueba de origen de la API de IDP Sign-In Status (crrev.com/c/4811725, error: 1451884).

Correcciones de errores

  • Emulación de dispositivos móviles: Se corrigió un problema por el que los dispositivos predefinidos sin Client Hints (p.ej., configuraciones anteriores) se dañaban al completarlos con valores predeterminados razonables (crrev.com/c/4887254, error: 4550).
  • Classic: Se corrigió la serialización de los objetos Map y Set. Ahora se serializan correctamente como Object en lugar de Collection, ya que no tienen una propiedad length (crrev.com/c/4881378, error: 4031).
  • Classic: Se restableció la lógica para descargar y usar siempre la versión compatible más reciente de ChromeDriver durante las pruebas, y se recurre a versiones específicas solo cuando surgen problemas de compatibilidad (crrev.com/c/4779613, revierte crrev.com/c/4778973).
  • FedCM: Se estandarizaron los comandos de automatización del navegador cambiando el nombre de Signin a Login (confirmidplogin) para alinearse con los debates más recientes sobre la especificación de FedCM (crrev.com/c/4901302, Bug: 1451884).
  • Pruebas: Se corrigieron las pruebas de FedCM que fallaban cuando se inhabilitaban las cookies de terceros. Para ello, se habilitó de forma explícita la API de IDP Sign-In Status durante la ejecución de prueba (crrev.com/c/4889802, error: 1484833).
  • Pruebas: Se reemplazó el marcador de posición de URL no válido ~NOTFOUND por ^NOTFOUND en los ejecutores de pruebas para cumplir con los próximos cambios en la aplicación de los estándares de URL de Chromium (crrev.com/c/4845589, Bug: 1416013).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia de BiDi Mapper a la versión 0.4.27, que incluye las correcciones y funciones más recientes (crrev.com/c/4862031, crrev.com/c/4890322).
  • Se reemplazaron varias APIs de puntero/longitud en //url por std::string_view para mejorar la seguridad y la comodidad (crrev.com/c/4897456).
  • Se realizó la transición de la utilidad generateWebDriverValue para que use la opción de serialización profunda (serializationOptions.serialization: deep) que proporciona de forma nativa el protocolo BiDi (crrev.com/c/4889644).
  • Se agregaron pruebas de integración para verificar que la búsqueda con una referencia de elemento obsoleta muestre correctamente un error de "referencia de elemento obsoleta" (crrev.com/c/4886793, Bug: 4440).
  • Se mejoró el formato del estilo de código en call_function.js (crrev.com/c/4882511, error: 4031).
  • Se mejoró la respuesta del usuario informándole explícitamente cuando se conecta a través de WebSockets que se admiten y recomiendan las canalizaciones para una mayor confiabilidad y seguridad (crrev.com/c/4882626, error 3480).
  • Se actualizó la configuración del paquete de WPT para archivar results.html para las pruebas de webdriver_tests_suite, lo que proporciona una mejor IU para ver los resultados (crrev.com/c/4873223).
  • Se corrigió la integración de las Herramientas para desarrolladores con WebView marcando WebView WebContents y configurando su tipo de Herramientas para desarrolladores como popup_page en lugar de other (crrev.com/c/4842093).
  • Se cambió el nombre del destino de compilación de WPT chrome_wpt a chrome_wpt_tests para mantener la coherencia y se quitó el destino redundante webdriver_wpt_tests (crrev.com/c/4847474, error: 1474702).
  • Se migró run_py_tests.py de la biblioteca optparse obsoleta a argparse (crrev.com/c/4849411, error: 4557).

ChromeDriver 118

Nuevas funciones

  • Pruebas de integración: Se introdujeron pruebas de integración de C++ para ChromeDriver, lo que permite probar clases específicas con tráfico de CDP real y llenar la brecha entre las pruebas de unidades y las pruebas de integración de Python (crrev.com/c/4707855, error: 4528).
  • Crossbench: Se actualizó la dependencia de crossbench con numerosas mejoras, incluidas nuevas historias de comparativas de potencia, mejor compatibilidad con plataformas y dispositivos, depuración mejorada y varias correcciones (crrev.com/c/4803743).

Correcciones de errores

  • Capacidades: Se corrigió un problema por el que faltaba debuggerAddress en las capacidades devueltas en las configuraciones predeterminadas. Ahora se devuelve correctamente para admitir la comunicación BiDi basada en CDP de Selenium (crrev.com/c/4789068, Error: 4533).
  • Capacidades: Se garantizó que ChromeDriver devuelva valores platformName estándar (p.ej., "linux", "windows", "mac") según lo requiere la especificación de WebDriver (crrev.com/c/4797735, Error: 4548).

Cambios internos y refactorizaciones

  • Se migró el código en MockSocket para preferir base::span<> en lugar de punteros sin procesar para mejorar la seguridad (crrev.com/c/4832086).
  • Se quitaron los usos obsoletos de base::raw_ptr y base::raw_ref y se reemplazaron por sus formas no calificadas raw_ptr y raw_ref a través de una limpieza automatizada (crrev.com/c/4773481).
  • Se revirtió temporalmente un cambio que siempre usaba la versión más reciente de ChromeDriver, ya que provocaba fallas en los canales estable y beta de Windows (crrev.com/c/4778973, revirtiendo crrev.com/c/4777430).
  • Se ajustaron las configuraciones de WPT (pruebas de la plataforma web), incluida la supresión de fallas solo de depuración en pointer_touch.py y la implementación de la verificación del enfoque del lado del navegador para los marcos delimitados (crrev.com/c/4844810, crrev.com/c/4572517).
  • Se agregó el #include <vector> faltante a client_hints.h para cumplir con IWYU (crrev.com/c/4767547).
  • Se migraron los tipos básicos específicos de Apple (ScopedTypeRef, ScopedCFTypeRef, scoped_nsautorelease_pool) al espacio de nombres base::apple::, y se dejaron encabezados de reenvío temporales para Crashpad (crrev.com/c/4799213, crrev.com/c/4790744, crrev.com/c/4790741, crrev.com/c/4784010).

ChromeDriver 117

Nuevas funciones

Correcciones de errores

  • Estabilidad: Se corrigió un acceso a un puntero nulo que provocaba que ChromeDriver fallara, lo que, a su vez, generaba errores de ConnectionRefused durante las ejecuciones de prueba (crrev.com/c/4675633, Bug: 1457101).
  • Navegación: Se corrigió un problema por el que los errores NoSuchExecutionContext y NoSuchWindow de Chrome durante la navegación no se controlaban de manera uniforme. Ahora, ambos se asignan correctamente para volver a intentar la operación (crrev.com/c/4667156, error 4459).
  • Emulación de dispositivos móviles: Se corrigió la lógica de inferencia para clientHints.mobile. Ahora se infiere correctamente a partir de userAgent en Android y se establece de forma predeterminada como falso en otras plataformas, lo que corrige un problema por el que las tablets se informaban incorrectamente como dispositivos móviles (crrev.com/c/4649348, Bug: 4243).
  • Creación de sesiones: Se actualizó la creación de sesiones para que devuelva correctamente el código de error estándar SessionNotCreated en caso de falla, en estricto cumplimiento con la especificación de WebDriver de W3C (crrev.com/c/4638223, Bug: 4379). Nota: Este cambio se revirtió posteriormente, ya que algunas rutas de código específicas requieren códigos de error diferentes (crrev.com/c/4651188).

Cambios internos y refactorizaciones

  • Se eliminaron las secuencias de comandos manuales del proceso de lanzamiento de ChromeDriver, ya que ahora ChromeDriver está completamente integrado en el proceso de lanzamiento de Chrome y está disponible a través de la infraestructura de Chrome for Testing (crrev.com/c/4520687, Error: 4142).
  • Se migró la infraestructura de WPT (pruebas de la plataforma web) para usar el arnés wptrunner oficial en lugar del run_webdriver_tests.py personalizado, lo que mejoró significativamente la velocidad y la confiabilidad de la ejecución, y garantizó que ChromeDriver se reiniciara entre las pruebas para aislar las fallas (crrev.com/c/4723147, crrev.com/c/4676070, crrev.com/c/4639168).
  • Se refactorizaron de forma exhaustiva ChromeLauncher y las clases relacionadas para admitir la transición a canalizaciones, lo que redujo el acoplamiento con DevToolsHttpClient y trasladó la lógica de WebSocket a ramas dedicadas (crrev.com/c/4632801, crrev.com/c/4674345).
  • Se cambió el nombre del campo engañoso BrowserInfo.is_headless a BrowserInfo.is_headless_shell para mayor claridad (crrev.com/c/4650452, Error: 4358).
  • Se reemplazaron varios métodos base::Value obsoletos por los equivalentes modernos de base::Value::Dict (p.ej., FindDouble(), Set(), size()) en toda la base de código (crrev.com/c/4258936, crrev.com/c/4336805, crrev.com/c/4461067).112.0.5603.0, 113.0.5653.0, 114.0.5733.0
  • Se quitó el uso de [w]ctype.h y se reemplazó por utilidades de cadenas básicas más seguras. Además, se implementaron nuevas funciones para base::expected (crrev.com/c/4749459, crrev.com/c/4755226).
  • Se implementaron los comandos de automatización get_fedcm_dialog_title y select_fedcm_account en TestDriver para las WPT de FedCM (crrev.com/c/4618303).
  • Se actualizaron las secuencias de comandos de compilación del asignador BiDi para que funcionen correctamente independientemente del directorio de trabajo actual (crrev.com/c/4670550).
  • Se convirtieron los archivos /chrome/test/chromedriver para usar ARC (recuento automático de referencias) en las compilaciones de macOS y se agregó el código estándar necesario (crrev.com/c/4663602).
  • Se intentó inhabilitar la comunicación de canalizaciones de forma predeterminada a través de una confirmación automática de aprobación, pero el cambio solo afectó la configuración sin alterar el comportamiento principal de las canalizaciones predeterminadas que se introdujo anteriormente (crrev.com/c/4683947).

ChromeDriver 116

Nuevas funciones

  • FedCM: Se agregó una nueva capacidad que permite a los clientes verificar si ChromeDriver admite comandos de FedCM sin necesidad de ejecutarlos y detectar errores (crrev.com/c/4624924, error: 1356159).
  • Pruebas: Se habilitó la reutilización de ventanas de prueba para las pruebas de testharness que se ejecutan a través de ChromeDriver en wptrunner para evaluar su impacto en el rendimiento y la inestabilidad (crrev.com/c/4515180, error: 1394572).

Correcciones de errores

  • Cumplimiento del estándar de C++: Se corrigió el comportamiento indefinido causado por el uso incorrecto de enumeraciones con alcance (clase enum) directamente en cadenas de formato, lo que aborda las nuevas advertencias del compilador Clang (crrev.com/c/4628112, Bug: 1456289).
  • FedCM: Se corrigió un caso límite que impedía que setdelayenabled funcionara correctamente, lo que solucionó una posible causa de inestabilidad en las pruebas (crrev.com/c/4606064, error: 1453412).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia de BiDi Mapper y se actualizó la secuencia de comandos de compilación para extraer la revisión más reciente de "main" de forma predeterminada (crrev.com/c/4615087, crrev.com/c/4615791, Bug: 4226).
  • Se realizó la transición de ChromeDriver para abrir y escribir todos los archivos con codificación UTF-8 de forma explícita (crrev.com/c/4614522).
  • Se refactorizó ChromeImpl para eliminar su dependencia de DevToolsHttpClient y se redujo el uso de SyncWebSocketFactory y BrowserInfo en preparación para la comunicación a través de canalizaciones en lugar de WebSockets (crrev.com/c/4571690, crrev.com/c/4571199, Bug: 3480).
  • Se quitó el "modo predeterminado" obsoleto para los marcos delimitados y se actualizaron las pruebas asociadas para habilitar la nueva marca de función, lo que continúa la migración a las subastas de FLEDGE (crrev.com/c/4558645).
  • Se mejoraron las pruebas de FedCM reemplazando las aserciones genéricas WaitForCondition por assertTrue para indicar claramente cuándo se producen tiempos de espera (crrev.com/c/4590211).
  • Se marcaron como conocidas las advertencias de raw_ptr colgantes no confiables en las pruebas unitarias de linux-rel (crrev.com/c/4598070).
  • Se actualizó el archivo OWNERS para el asignador de BiDi (crrev.com/c/4614518).

ChromeDriver 115

Nuevas funciones

  • Emulación de dispositivos móviles: Se implementó la compatibilidad con User-Agent Client Hints en la emulación de dispositivos móviles, lo que permite que ChromeDriver analice las Client Hints a partir de capacidades y parámetros predeterminados, y que las pase a Chrome (crrev.com/c/4498667, crrev.com/c/4466129, Error: 4243).
  • Emulación de dispositivos móviles: Se actualizaron los parámetros de configuración predeterminados de la emulación de dispositivos móviles para usar la versión principal del navegador host en lugar de la versión de ChromeDriver cuando se reemplaza la cadena de formato %s en el usuario-agente (crrev.com/c/4502850, Error: 4243).
  • Configuración: Se agregó compatibilidad para descargar una versión específica de ChromeDriver para un canal determinado, lo que mejora las situaciones de automatización en las que ChromeDriver se ejecuta en una plataforma diferente (como Android o WebView) que el host (crrev.com/c/4550281).116.0.5791.0

Correcciones de errores

  • Classic: Se corrigió un problema por el que, si no se podía resolver un nodo, se devolvía incorrectamente un UnknownError en lugar del error estándar NoSuchElement (crrev.com/c/4508952, Bug: 4440).
  • Emulación de dispositivos móviles: Se agregaron aserciones más estrictas a los ajustes predeterminados de emulación de dispositivos móviles para aplicar que la marca clientHints.mobile debe ser verdadera si la cadena userAgent contiene "Mobile" (crrev.com/c/4507142, Bug: 4243).
  • Emulación de dispositivos móviles: Se migraron los reemplazos de DeviceMetrics para usar el comando Emulation.setDeviceMetricsOverride de CDP en lugar del dominio Page equivalente que quedó obsoleto (crrev.com/c/4502614, Error: 4243).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia de BiDi Mapper, lo que habilita funciones de serialización profunda (crrev.com/c/4535936, crrev.com/c/4512195).
  • Se quitó el método Connect obsoleto de DevToolsClient como preparación para migrar ChromeDriver para que se comunique a través de canalizaciones (crrev.com/c/4521485, Bug: 3480).
  • Se migró la base de código para preferir base::Value::Dict en lugar de base::Value y se reemplazaron los métodos obsoletos, como FindStringKey(), SetKey() y SetByDottedPath() (crrev.com/c/4529788, crrev.com/c/4522701, crrev.com/c/4515800, crrev.com/c/4507150).
  • Se cambió el uso de funciones string_util.h en lugar de [w]ctype.h para conversiones de tipos más seguras (crrev.com/c/4529187).
  • Se cambió la lógica de carga de archivos de inicialización para usar rutas de acceso absolutas y garantizar la coherencia cuando las secuencias de comandos y Chrome se ejecutan en diferentes ubicaciones (crrev.com/c/4504656).
  • Se quitó el método CallAsyncFunction() sin usar de web_view.h (crrev.com/c/4518363, Bug: 3376).
  • Se aplicó un cambio de nombre automático de base::raw_ptr a raw_ptr para seguir las preferencias de la guía de estilo (crrev.com/c/4476651).

ChromeDriver 114

Nuevas funciones

  • Clásico: Se pasó información de MobileDevice a MobileEmulationOverrideManager para sentar las bases de futuras anulaciones de Client Hints y UserAgent (crrev.com/c/4447524).
  • Pruebas: Se agregaron elementos de prueba para ChromeDriver (crrev.com/c/4459939).

Correcciones de errores

  • Headless: Se corrigió una falla en el nuevo modo sin interfaz gráfica ignorando de forma silenciosa las solicitudes de vista previa de impresión basadas en secuencias de comandos (p.ej., window.print()), lo que alinea el comportamiento con el modo sin interfaz gráfica anterior (crrev.com/c/4436313, error: 4385).
  • Capacidades: Se corrigió un error de uso después de movimiento en las capacidades de ChromeDriver (crrev.com/c/4462094, error: 4243).
  • DevTools: Se quitó un DCHECK en DevToolsClientImpl::SendCommandInternal para evitar fallas cuando se interrumpe la conexión de las Herramientas para desarrolladores, ya que esto no es un incumplimiento de la invariante (crrev.com/c/4370486, error: 4385).

Cambios internos y refactorizaciones

  • BiDi: Se actualizó la dependencia de BiDi Mapper (crrev.com/c/4418727).
  • Se corrigieron varias advertencias de punteros colgantes durante la ejecución de pruebas de unidades administrando correctamente las referencias no propias y la destrucción local en WebViewImpl y en las pruebas del registrador de rendimiento (crrev.com/c/4374824, crrev.com/c/4368179).
  • Se migró la base de código para usar la nueva API de base::Value v2, lo que reemplazó métodos obsoletos como Value::SetPath(), Value::SetStringPath() y base::ListValue (crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520).
  • Se reemplazaron todos los usos de base::GUID por base::Uuid para alinearse con el cambio de nombre de la biblioteca base principal (crrev.com/c/4455083).
  • Se realizaron varias limpiezas de código, como acortar el código, usar operaciones monádicas para expected, quitar código inactivo y corregir incumplimientos de estilo (crrev.com/c/4475368, crrev.com/c/4464199).
  • Se actualizaron las pruebas que involucran marcos delimitados para usar el atributo config en lugar del atributo src obsoleto (crrev.com/c/4382231).
  • Se quitó el uso ineficaz de ShadowDOMV0 (crrev.com/c/4388302).
  • Se revirtió la adición de una marca para una corrección de PDF de Skia (SK_IGNORE_PDF_EOF_NEWLINE_FIX) para permitir el rebaselining (crrev.com/c/4401451).
  • Se actualizó el propietario de la secuencia de comandos de prueba de ChromeDriver y se realizaron ajustes para generar el JSON de configuración exclusivamente para pinpoint (crrev.com/c/4437492, crrev.com/c/4298554).
  • Se agregó un include faltante (<cstring>) para std::strlen en web_view_impl.cc para corregir un problema de compilación de IWYU (crrev.com/c/4376772).
  • Se quitó un archivo de prueba sin usar (orientation_test.html) (crrev.com/c/4335668).

ChromeDriver 113.0.5672.63

Es compatible con la versión 113 de Chrome.

  • Se resolvió el problema 4205: Mismos IDs de objetos en Classic y BiDi [Pri-1]
  • Se resolvió el problema 4302: No se debe suponer que Mapper está en la primera pestaña de ExecuteGetWindowHandles [Pri-1].
  • Se resolvió el problema 4356: Chrome 110 no utiliza el valor de preferencia "download.default_directory" [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 113.0.5672.24

Es compatible con la versión 113 de Chrome.

  • Se resolvió el problema 4205: Mismos IDs de objetos en Classic y BiDi [Pri-1]
  • Se resolvió el problema 4302: No se debe suponer que Mapper está en la primera pestaña de ExecuteGetWindowHandles [Pri-1].
  • Se resolvió el problema 4356: Chrome 110 no utiliza el valor de preferencia "download.default_directory" [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 112.0.5615.49

Es compatible con la versión 112 de Chrome.

  • Se resolvió el problema 3517: Se habilitó la función de impresión para no headless [Pri-]
  • Se resolvió el problema 4419: Sobrecarga grande en Speedometer cuando se usa chromedriver [Pri-3]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 112.0.5615.28

Es compatible con la versión 112 de Chrome.

  • Se resolvió el problema 4357: Problema de sesión de Chromedriver versión 110.0.5481.77 con las opciones --headless y --user-data-dir. [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 111.0.5563.64

Es compatible con la versión 111 de Chrome.

  • Se resolvió el problema 4216: Ejecutar ChromeDriver con BiDiMapper personalizado [Pri-]
  • Se resolvió el problema 4300: El identificador de ventana es interoperable entre Classic y BiDi [Pri-]
  • Se resolvió el problema 4325: El control de toJSON en jsonSerialize de call_function.js se desvía del estándar. [Pri-]
  • Se resolvió el problema 4330: Se produce un error en DCHECK en DevToolsClientImpl::AddListener [Pri-]
  • Se resolvió el problema 4357: Problema de sesión de ChromeDriver con las opciones --headless y --user-data-dir [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 111.0.5563.41

Es compatible con la versión 111 de Chrome.

  • Se resolvió el problema 4357: Problema de sesión de ChromeDriver con las opciones --headless y --user-data-dir [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 111.0.5563.19

Es compatible con la versión 111 de Chrome.

  • Se resolvió el problema 4216: Ejecutar ChromeDriver con BiDiMapper personalizado [Pri-]
  • Se resolvió el problema 4300: El identificador de ventana es interoperable entre Classic y BiDi [Pri-]
  • Se resolvió el problema 4325: El control de toJSON en jsonSerialize de call_function.js se desvía del estándar. [Pri-]
  • Se resolvió el problema 4330: Se produce un error en DCHECK en DevToolsClientImpl::AddListener [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 110.0.5481.77

Es compatible con la versión 110 de Chrome.

  • Se resolvió el problema 4193: No se pudo iniciar una sesión nueva en Android 13 [Pri-]
  • Se resolvió el problema 4272: WebSocket debería tratar code=0 como una indicación de FIN [Pri-]
  • Se resolvió el problema 4276: Se corrigieron los problemas de conectividad en ChromeDriver [Pri-]
  • Se resolvió el problema 4295: ChromeDriver con "webSocketUrl": true es susceptible a condiciones de carrera [Pri-]
  • Se resolvió el problema 4297: ChromeDriver Bidi serializa de forma incorrecta [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 110.0.5481.30

Es compatible con la versión 110 de Chrome.

  • Se resolvió el problema 4193: No se pudo iniciar una sesión nueva en Android 13 [Pri-]
  • Se resolvió el problema 4272: WebSocket debería tratar code=0 como una indicación de FIN [Pri-]
  • Se resolvió el problema 4276: Se corrigieron los problemas de conectividad en ChromeDriver [Pri-]
  • Se resolvió el problema 4295: ChromeDriver con "webSocketUrl": true es susceptible a condiciones de carrera [Pri-]
  • Se resolvió el problema 4297: ChromeDriver Bidi serializa de forma incorrecta [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 109.0.5414.74

Se admite la versión 109 de Chrome

  • Se resolvió el problema 4179: La sesión de BiDi debe admitir varias conexiones [Pri-]
  • Se resolvió el problema 4203: Mejora la información de créditos [Pri-]
  • Se resolvió el problema 4263: Falla en Meta + A [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 109.0.5414.25

Se admite la versión 109 de Chrome

  • Se resolvió el problema 4179: La sesión de BiDi debe admitir varias conexiones [Pri-]
  • Se resolvió el problema 4203: Mejora la información de créditos [Pri-]
  • Se resolvió el problema 4263: Falla en Meta + A [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 108.0.5359.71

Es compatible con la versión 108 de Chrome. Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 108.0.5359.22

Se admite la versión 108 de Chrome

  • Se resolvió el problema 4204: Se corrigió la falla de la prueba WPT test_top_level_and_one_child [Pri-]
  • Se resolvió el problema 4215: Se cambió el nombre de la compilación chromedriver_mac64_m1 a chromedriver_mac_arm64 [Pri-]
  • Se resolvió el problema 4221: Se produce una falla cuando un comando de clic cierra el navegador [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 107.0.5304.62

Es compatible con la versión 107 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 107.0.5304.18

Es compatible con la versión 107 de Chrome.

  • Se resolvió el problema 4180: Se prohíbe cualquier control de comandos BiDi hasta que se notifique que se inició BiDiMapper [Pri-]
  • Se resolvió el problema 4198: ChromeDriver BiDi no debería suponer que BiDiMapper siempre está en la primera pestaña [Pri-]
  • Se resolvió el problema 4207: Error de WebDriver al ejecutar WPT [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 106.0.5249.61

Es compatible con la versión 106 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 106.0.5249.21

Es compatible con la versión 106 de Chrome.

  • Se resolvió el problema 4016: Se agregó compatibilidad básica con BiDi a ChromeDriver (basado en Mapper) [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 105.0.5195.52

Es compatible con la versión 105 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 105.0.5195.19

Versión de Chrome compatible

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 104.0.5112.79

Se admite la versión 104 de Chrome

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 104.0.5112.29

Se admite la versión 104 de Chrome

  • Se resolvió el problema 4121: A veces, el comando WebDriver falla con el mensaje "unexpected command response" [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 104.0.5112.20

Se admite la versión 104 de Chrome

  • Se resolvió el problema 4121: A veces, el comando WebDriver falla con el mensaje "unexpected command response" [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 103.0.5060.134

Se admite la versión 103 de Chrome

  • Se resolvió el problema 4048: Se desconectó el fotograma de destino [Pri-]
  • Se resolvió el problema 4121: A veces, el comando WebDriver falla con el mensaje "unexpected command response" [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 103.0.5060.53

Se admite la versión 103 de Chrome

  • Se resolvió el problema 4048: Se desconectó el fotograma de destino [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 103.0.5060.24

Se admite la versión 103 de Chrome

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 102.0.5005.61

Es compatible con la versión 102 de Chrome.

  • Se resolvió el problema 1309282: chromedriver no admite parámetros de configuración con varios valores [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 102.0.5005.27

Es compatible con la versión 102 de Chrome.

  • Se resolvió el problema 1309282: chromedriver no admite parámetros de configuración con varios valores [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 101.0.4951.41

Es compatible con la versión 101 de Chrome.

  • Se resolvió el problema 4046: Se produjo un error de DCHECK al agregar un marco delimitado vacío [Pri-]
  • Se resolvió el problema 4080: No se puede cambiar a un fotograma anidado [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 101.0.4951.15

Es compatible con la versión 101 de Chrome.

  • Se resolvió el problema 4046: Se produjo un error de DCHECK al agregar un marco delimitado vacío [Pri-]
  • Se resolvió el problema 4080: No se puede cambiar a un fotograma anidado [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 100.0.4896.60

Es compatible con la versión 100 de Chrome.

  • Se resolvió el problema 4002: Compatibilidad con Fenced Frames [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 100.0.4896.20

Es compatible con la versión 100 de Chrome.

  • Se resolvió el problema 4002: Compatibilidad con Fenced Frames [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 99.0.4844.51

Es compatible con la versión 99 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 99.0.4844.35

Es compatible con la versión 99 de Chrome.

  • ¡¡¡SE REVIRTIÓ!!! Se resolvió el problema 2269: No se pueden usar caracteres que no sean BMP (puntos de código superiores a U+FFFF) [Pri-3]
  • Se resolvió el problema chromium:1295243: Regresión en sendKeys de ChromeDriver [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 99.0.4844.17

Es compatible con la versión 99 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 98.0.4758.102

Se admite la versión 98 de Chrome.

  • Se resolvió el problema 3933: El clic en el borde de la ventana gráfica no es efectivo sin errores [Pri-]
  • ¡¡¡SE REVIRTIÓ!!! Se resolvió el problema 2269: No se pueden usar caracteres que no sean BMP (puntos de código superiores a U+FFFF) [Pri-3]
  • Se resolvió el problema chromium:1295243: Regresión en sendKeys de ChromeDriver [Pri-1]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 98.0.4758.80

Se admite la versión 98 de Chrome.

  • Se resolvió el problema 3933: El clic en el borde de la ventana gráfica no es efectivo sin errores [Pri-]
  • Se resolvió el problema 2269: No se pueden usar caracteres que no sean BMP (puntos de código superiores a U+FFFF) [Pri-3]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 98.0.4758.48

Se admite la versión 98 de Chrome.

  • Se resolvió el problema 3933: El clic en el borde de la ventana gráfica no es efectivo sin errores [Pri-]
  • Se resolvió el problema 2269: No se pueden usar caracteres que no sean BMP (puntos de código superiores a U+FFFF) [Pri-3]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 97.0.4692.71

Es compatible con la versión 97 de Chrome.

  • Se resolvió el problema 3878: Mejor control de las coordenadas de elementos fraccionarios para el clic en elementos [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 97.0.4692.36

Es compatible con la versión 97 de Chrome.

  • Se resolvió el problema 3878: Mejor control de las coordenadas de elementos fraccionarios para el clic en elementos [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 97.0.4692.20

Es compatible con la versión 97 de Chrome.

  • Se resolvió el problema 3878: Mejor control de las coordenadas de elementos fraccionarios para el clic en elementos [Pri-]

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 96.0.4664.45

Es compatible con la versión 96 de Chrome.

  • Se resolvió el problema 3445: No se puede acceder a los elementos en un iframe dentro de una raíz de sombra [Pri-3].

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 96.0.4664.35

Es compatible con la versión 96 de Chrome.

  • Se resolvió el problema 3445: No se puede acceder a los elementos en un iframe dentro de una raíz de sombra [Pri-3].

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 96.0.4664.18

Es compatible con la versión 96 de Chrome.

  • Se resolvió el problema 3445: No se puede acceder a los elementos en un iframe dentro de una raíz de sombra [Pri-3].

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 95.0.4638.69

Es compatible con la versión 95 de Chrome.

  • Se resolvió el problema 3857: Se especifica el encabezado Host o el encabezado Origin, y no se incluye en la lista de entidades permitidas ni en localhost [Pri-1]
  • Se agregó el argumento --allowed-origins

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 95.0.4638.54

Es compatible con la versión 95 de Chrome.

  • Se resolvió el problema 3857: Se especifica el encabezado Host o el encabezado Origin, y no se incluye en la lista de entidades permitidas ni en localhost [Pri-1]
  • Se agregó el argumento --allowed-origins

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 95.0.4638.17

Es compatible con la versión 95 de Chrome.

  • Se resolvió el problema 3857: Se especifica el encabezado Host o el encabezado Origin, y no se incluye en la lista de entidades permitidas ni en localhost [Pri-1]
  • Se agregó el argumento --allowed-origins

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 95.0.4638.10

Es compatible con la versión 95 de Chrome.

  • Se resolvió el problema 3857: Se especifica el encabezado Host o el encabezado Origin, y no se incluye en la lista de entidades permitidas ni en localhost [Pri-1]
  • Se agregó el argumento --allowed-origins

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 94.0.4606.113

Es compatible con la versión 94 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 94.0.4606.61

Es compatible con la versión 94 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 94.0.4606.41

Es compatible con la versión 94 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 93.0.4577.63

Es compatible con la versión 93 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 93.0.4577.15

Es compatible con la versión 93 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 92.0.4515.107

Es compatible con la versión 92 de Chrome.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 92.0.4515.43

Es compatible con la versión 92 de Chrome.

  • Se resolvió el problema 3389: Validación de host para solicitudes de ChromeDriver

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 91.0.4472.101

Se admite la versión 91 de Chrome.

  • Se resolvió el problema 1205107: No se puede obtener el valor del atributo para los campos en la aplicación web.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 91.0.4472.19

Se admite la versión 91 de Chrome.

  • Se resolvió el problema 3744: SendKeys() y Click() fallan de forma silenciosa después de la navegación de vínculos
  • Se resolvió el problema 3746: El extremo del atributo actualiza los valores de forma incorrecta

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 90.0.4430.24

Es compatible con la versión 90 de Chrome.

  • Se resolvió el problema 3708: El método inView de GetElementLocation falla para los elementos en Shadow DOM
  • Se resolvió el problema 3721: Se recopila el registro de rendimiento del Service Worker cuando está habilitado
  • Se resolvió el problema 3731: AdbImpl::GetPidByName no funciona correctamente en SO Android no estándares, como en OnePlus
  • Se resolvió el problema 3733: Falla catastrófica con el dominio en localhost
  • Se resolvió el problema 3734: El controlador debería mostrar un error al intentar establecer una cookie en el dominio incorrecto.
  • Se resolvió el problema 3743: Se refactorizó la función de llamada y se corrigió el problema de eliminación de elementos

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 89.0.4389.23

Compatible con la versión 89 de Chrome

  • Se resolvió el problema 3667: Se agotó el tiempo de espera para recibir un mensaje del renderizador
  • Se resolvió el problema 3675: GetElementLocation usa el método inView, que controla de forma incorrecta el valor booleano como array
  • Se resolvió el problema 3682: GetElementRegion devuelve un tamaño incorrecto para los elementos que están parcialmente fuera del viewport
  • Se resolvió el problema 3690: ChromeDriver falla si las extensiones usan la API de chrome.windows

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 88.0.4324.96

Es compatible con la versión 88 de Chrome.

  • Se resolvió el problema 3641: No se carga ni renderiza la página cuando la ventana del navegador no está en primer plano con Chrome Beta v87 y Chromedriver v(87/86)

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 88.0.4324.27

Es compatible con la versión 88 de Chrome.

  • Se resolvió el problema 3611: La salida de getText() en Protractor es diferente de la de <element>.innerText
  • Se resolvió el problema 3625: Se mejoró la compatibilidad de las capturas de pantalla de elementos
  • Se resolvió el problema 3628: Se devolvió una referencia de elemento obsoleta y una URL incorrecta con una URL que tiene otra URL como parte de su ruta.
  • Se resolvió el problema 3631: Se agregó compatibilidad con la capacidad webauthn:extension:largeBlob
  • Se resolvió el problema 3635: Chromedriver 86: chromedriver.quit() no parece pasar el evento de descarga correctamente
  • Se resolvió el problema 3649: La copia del texto seleccionado en el portapapeles no funciona en Windows 10 cuando se usa el modo sin encabezado.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 87.0.4280.88

Compatible con la versión 87 de Chrome

  • Se resolvió el problema 3641: No se carga ni renderiza la página cuando la ventana del navegador no está en primer plano con Chrome Beta v87 y Chromedriver v(87/86)
  • Se resolvió el problema 3657: Se agotó el tiempo de espera del navegador en segundo plano de la captura de pantalla

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 87.0.4280.20

Compatible con la versión 87 de Chrome

  • Se resolvió el problema 2421: Se borraron los canales de reenvío de puertos antiguos en el servidor adb de Android.
  • Se resolvió el problema 3474: Se debe actualizar la lista de dispositivos móviles emulados
  • Se resolvió el problema 3507: Se implementó "get computed role"
  • Se resolvió el problema 3508: Se implementó "get computed label"
  • Se resolvió el problema 3584: Se cambió el nombre de la opción de línea de comandos de ChromeDriver --whitelisted-ips
  • Se resolvió el problema 3588: Conexión WebSocket bidireccional
  • Se resolvió el problema 3594: La navegación se completa de forma prematura si se carga el OOPIF antes que la página principal.
  • Se resolvió el problema 3598: Se agregó una opción de línea de comandos para que el puerto de DevTools se reenvíe al socket de webview_devtools_remote
  • Se resolvió el problema 3608: debuggerAddress de Chromedriver no admite IPv6

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 86.0.4240.22

Es compatible con la versión 86 de Chrome.

  • Se resolvió el problema 3370: Chrome se debe cerrar correctamente, o la cookie no se guardará de forma correcta en el archivo de persistencia de SQLite.
  • Se resolvió el problema 3401: Get Element Location JS no ubica el centro visible del elemento
  • Se resolvió el problema 3462: En sendKeys, la tecla CMD no funciona en MAC
  • Se resolvió el problema 3541: Se mejoró el registro entre el cliente y ChromeDriver
  • Se resolvió el problema 3559: Se genera la versión de Chrome cuando ChromeDriver informa que es incompatible

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 85.0.4183.87

Es compatible con la versión 85 de Chrome.

  • Se resolvió el problema 3578: Chrome 85 ya no permite la interacción fluida con ventanas cuando se abre un cuadro de diálogo de alerta.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 85.0.4183.83

Es compatible con la versión 85 de Chrome.

  • Se resolvió el problema 3577: ChromeDriver 85 no detecta el directorio de Chrome cambiado (C:\Archivos de programa)

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 85.0.4183.38

Es compatible con la versión 85 de Chrome.

  • Se resolvió el problema 3214: ChromeDriver78: Sendkeys restablece la selección de texto con contenteditable
  • Se resolvió el problema 3376: Se quitó el comando LaunchApp de ChromeDriver
  • Se resolvió el problema 3432: A veces, NavigationTracker no detecta cuando finaliza la carga de la página
  • Se resolvió el problema 3481: Nuevo extremo de Print según la especificación de W3C
  • Se resolvió el problema 3488: driver.get no arroja un error cuando el proxy está configurado de forma incorrecta
  • Se resolvió el problema 3502: Se usa document.hasFocus() para verificar si el elemento está enfocado.
  • Se resolvió el problema 3515: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 84.0.4147.30

Es compatible con la versión 84 de Chrome.

  • Se resolvió el problema 3420: Después de cambiar a la ventana de impresión, chromedriver deja de responder.
  • Se resolvió el problema 3421: El controlador devuelve texto cirílico sin estilos
  • Se resolvió el problema 3422: GetElementText falla con el prototipo 1.6.0.3
  • Se resolvió el problema 3434: No se pueden obtener mensajes de "assert" de los registros del "navegador"

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 83.0.4103.39

Compatible con la versión 83 de Chrome

  • Se actualizó Chromedriver para que funcione correctamente con prototype.js.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 83.0.4103.14

Compatible con la versión 83 de Chrome

  • Se resolvió el problema 1778: Se dejó de usar launchApp de ChromeDriver
  • Se resolvió el problema 2520: InitSession puede esperar indefinidamente cuando Chrome no responde
  • Se resolvió el problema 3120: Descarga en modo sin interfaz gráfica desde una pestaña nueva
  • Se resolvió el problema 3234: Se confirma que se encontró un punto y coma antes de la subcadena
  • Se resolvió el problema 3240: ExecuteGetElementRect no verifica el estado devuelto de GET_SIZE
  • Se resolvió el problema 3331: El método get_cookies() devuelve claves de "vencimiento" de tipo doble, pero debería ser int64 en el modo w3c.
  • Se resolvió el problema 3332: Se registró el tiempo de espera de reintento como grave
  • Se resolvió el problema 3339: Chromedriver se cerró de forma inesperada con el código nulo y el indicador SIGTRAP
  • Se resolvió el problema 3351: Se mejoró el mensaje de Consideraciones de seguridad
  • Se resolvió el problema 3352: Se agregó compatibilidad con SendKeys para los elementos de color
  • Se resolvió el problema 3353: La espera de navegación pendiente continúa después de que se destruye el contexto del fotograma
  • Se resolvió el problema 3375: Chromedriver v80 se detiene en getPageSource en algunos sitios
  • Se resolvió el problema 3383: ChromeDriver 80+ en Windows parece salir o detenerse en ciertos comandos de elementos o clics
  • Se resolvió el problema 3399: Se quitó la verificación de wasThrown

ChromeDriver 81.0.4044.138

Compatible con la versión 81 de Chrome

  • Se actualizó Chromedriver para que funcione correctamente con prototype.js.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 81.0.4044.69

Compatible con la versión 81 de Chrome

  • Se corrigió una falla de Chromedriver en getPageSource en algunos sitios.
    • Se corrigió el problema por el que ChromeDriver fallaba en ciertos comandos de clic o elementos.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 81.0.4044.20

Compatible con la versión 81 de Chrome

  • Se corrigió el error que se producía al intentar obtener la ubicación de un elemento HTML.
    • Los comandos Get y Add Cookie ahora son específicos del frame.
    • Se resolvieron algunos problemas que se producen con los sitios que redefinen objetos estándar de JavaScript.
    • ChromeDriver seguirá esperando a que se complete la carga después de recibir un mensaje de Target Closed.
    • Chromedriver ahora devuelve un código de error compatible con las especificaciones para los tiempos de espera
    • Se corrigió el tiempo de respuesta lento inesperado de ChromeDriver en el comando NewSession.
    • Ahora se admiten los tiempos de espera definidos por el usuario de más de 10 minutos.
    • Se corrigió el problema por el que ChromeDriver no se podía conectar a las Herramientas para desarrolladores debido a una discrepancia entre IPv4 e IPv6.
    • Se restableció el orden de búsqueda del objeto binario de Chrome en Linux.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 80.0.3987.106

Es compatible con la versión 80 de Chrome

  • Se restableció el orden de búsqueda del objeto binario de Chrome en Linux

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 80.0.3987.16

Es compatible con la versión 80 de Chrome

  • Se corrigió el problema por el que se abortaba la carga de la página cuando se usaba un proxy.
  • Chromedriver ahora espera a que se cargue el fotograma actual.
  • El registro de ChromeDriver incluirá el puerto que usa el controlador.
  • Se habilitó SetGeoLocation para el modo w3c.
  • Se agregó el texto de alerta faltante para el estado UnexpectedAlertOpen.
  • Se mejoró el mensaje cuando se carga la extensión CRX2.
  • Se corrigió una posible condición de carrera en ExecuteGetPageSource.
  • ChromeDriver agregará la marca --ignore-certificate-errors cuando la capacidad acceptInsecureCerts sea verdadera
  • Se actualizaron el mensaje de error y el estado de devolución para el caso en que no exista un contexto de ejecución.
  • Se corrigió un problema por el que ChromeDriver podía bloquearse de forma indefinida mientras esperaba la navegación pendiente.
  • Se agregó el atributo SameSite a AddCookie y GetCookie.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 79.0.3945.36

Es compatible con la versión 79 de Chrome

Incluye el siguiente cambio con respecto a la versión 79.0.3945.16:

  • Se corrigió el cálculo incorrecto de las coordenadas de los elementos.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 79.0.3945.16

Es compatible con la versión 79 de Chrome

  • Se corrigió una falla de ChromeDriver causada por una alerta de JavaScript que se activaba durante la ejecución de un comando.
    • Se corrigió un error que provocaba que Chromedriver se bloqueara cuando se activaba una alerta mientras se tomaba una captura de pantalla.
    • Se quitó --ignore-certificate-errors del comando de inicio de Chrome
    • Se cambiaron platform y platformName a windows en Win10
    • Se corrigió el error de window.navigator.webdriver no definido cuando se excluye "enable-automation".
  • Se corrigió la prueba de WPT "test_not_editable_inputs[hidden]".
    • Se corrigió el error "No se puede hacer clic en el elemento" cuando se usa el modo sin interfaz gráfica

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 78.0.3904.105

Compatible con la versión 78 de Chrome

Se incluye el siguiente cambio con respecto a la versión 78.0.3904.70: * Se corrigió el cálculo incorrecto de las coordenadas de los elementos.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 78.0.3904.70

Compatible con la versión 78 de Chrome

Incluye el siguiente cambio con respecto a la versión 78.0.3904.11:

  • Se revirtió el cambio para ajustar el tamaño de la captura de pantalla en la pantalla Retina debido a los múltiples problemas informados.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 78.0.3904.11

Compatible con la versión 78 de Chrome

  • Se corrigieron varios problemas en la serialización de objetos JavaScript.
    • Se corrigió un error en la coincidencia de capacidades para Chrome en Android
    • Se implementó la automatización de permisos
    • Tamaño fijo de la captura de pantalla en pantallas Retina
  • Se corrigió el tiempo de espera de carga de la página en algunos casos.
    • Se mejoró la coincidencia de la capacidad de platformName
    • Se corrigió el código de error que se devolvía al mover el puntero a las opciones de la lista desplegable.
    • Se corrigió un problema que afectaba las descargas en el modo sin interfaz gráfica

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 77.0.3865.40

Es compatible con la versión 77 de Chrome.

Incluye los siguientes cambios con respecto a la versión 77.0.3865.10:

  • Se corrigieron dos errores en la serialización y deserialización de objetos JavaScript
  • Se corrigió el manejo de platformName: android durante la coincidencia de capacidades

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 77.0.3865.10

Es compatible con la versión 77 de Chrome.

  • Se corrigieron varios problemas en la implementación de la API de Actions.
    • Se mejoró la ejecución del código JavaScript y el control de resultados
    • Se corrigió un error que rechazaba incorrectamente las solicitudes POST con un cuerpo vacío en el modo de OSS.
  • Un monitor de navegación más robusto
  • Se admite la estrategia de carga de página anticipada.
    • Se agregó el comando New Window de la especificación WebDriver de W3C
  • Se agregó compatibilidad para guardar descargas de archivos en modo sin encabezado
  • Se agregó compatibilidad para cargar extensiones CRX3

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 76.0.3809.126

Es compatible con la versión 76 de Chrome.

Incluye los siguientes cambios con respecto a la versión 76.0.3809.68:

  • Se corrigieron dos errores en la serialización y deserialización de objetos JavaScript

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 76.0.3809.68

Es compatible con la versión 76 de Chrome.

Incluye los siguientes cambios con respecto a la versión 76.0.3809.25:

  • Se corrigió un error en la detección de referencias circulares en objetos de JavaScript
  • Se corrigió un error que provocaba que ChromeDriver fallara cuando se producían ciertos tipos de errores de JavaScript.
  • Se corrigió un error que impedía que la API de Actions interactuara con elementos dentro de los Shadow DOM.
    • Se corrigió un error en el seguimiento del estado de las teclas modificadoras entre los comandos de la API de acciones.
    • Se corrigió un error en el seguimiento de las ubicaciones del puntero entre los comandos de la API de Actions.
    • Se guarda el error "Cannot call non W3C standard command while in W3C mode" en el archivo de registro cuando se produce.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 76.0.3809.25

Es compatible con la versión 76 de Chrome.

Se incluyen los siguientes cambios en comparación con la versión 76.0.3809.12:

  • Se corrigió un error que rechazaba incorrectamente las solicitudes POST con un cuerpo vacío en el modo de OSS.
  • Se agregaron nuevos extremos para recuperar el registro de Chrome.
    • Se agregó un extremo para el comando Is Displayed en el modo W3C

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 76.0.3809.12

Es compatible con la versión 76 de Chrome.

  • Implementación finalizada de la API de Actions
    • Se mejoró el cumplimiento de las especificaciones del control de tiempo de espera de la secuencia de comandos
    • Se mejoró la serialización de los resultados del comando Execute Script
    • Se corrigieron problemas relacionados con el desplazamiento de un elemento para que se vea.
    • Se agregó el control de la tecla Cancel definida en la especificación de WebDriver
    • Se corrigió el procesamiento de la respuesta de error de alerta no controlada
    • Se corrigió el procesamiento del elemento <details>.
    • Se actualizó la opción excludeSwitches para permitir guiones iniciales opcionales en los nombres de los parámetros de configuración.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 75.0.3770.140

Es compatible con la versión 75 de Chrome.

Incluye los siguientes cambios con respecto a la versión 75.0.3770.90:

  • Se corrigió un error que provocaba que ChromeDriver fallara cuando se producían algunos tipos de errores de JavaScript.
  • Se corrigió un error relacionado con la conservación del estado de la tecla modificadora entre acciones.

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 75.0.3770.90

Es compatible con la versión 75 de Chrome.

Incluye los siguientes cambios con respecto a la versión 75.0.3770.8:

  • Se corrigió un error que rechazaba incorrectamente las solicitudes POST con un cuerpo vacío en el modo de OSS.
  • Se agregaron extremos nuevos para recuperar el registro de Chrome

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 75.0.3770.8

Es compatible con la versión 75 de Chrome.

El cambio más notable es que ChromeDriver ahora se ejecuta de forma predeterminada en el modo compatible con el estándar W3C. Otros cambios incluyen lo siguiente:

  • Se corrigió un error que provocaba que el evento de desenfoque se activara dos veces durante el borrado de elementos.
  • Se cambió el nombre de la capacidad loggingPrefs a goog:loggingPrefs, según lo requiere el estándar de W3C.
  • Se corrigió el manejo de errores en el modo W3C.
    • Se corrigió el manejo de la creación de cookies sin un punto inicial en el nombre de dominio.
    • Permite valores nulos para el tiempo de espera de la secuencia de comandos
    • Se corrigió el comando Send Keys del elemento para la entrada de archivos con el atributo "multiple".
    • Se corrigió el comando Get Active Element para que muestre el error "no such element" cuando no existe ningún elemento activo.
    • Se corrigió la navegación a una URL con formato incorrecto para devolver el error "argumento no válido".
    • Se corrigió el código de estado HTTP cuando se recibe un ID de sesión no válido
    • Se corrigió la respuesta de error cuando falta un parámetro de entrada o tiene un formato incorrecto
    • Se corrigió el comando Ejecutar secuencia de comandos para controlar los comentarios de JavaScript orientados a líneas

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 74.0.3729.6

Es compatible con la versión 74 de Chrome.

  • Se corrigió un error que generaba un archivo debug.log inesperado en Windows.
  • Se corrigió el clic del mouse y la acción de arrastrar y soltar dentro del documento SVG
  • Se agregó el encabezado cache-control en las respuestas de ChromeDriver
  • Se corrigió el tipo de error que se produce cuando un elemento diferente intercepta el clic.
  • Se corrigió un error que provocaba que ChromeDriver fallara en dispositivos Linux sin /dev/shm
  • Se corrigieron algunos tipos de eventos de doble clic.
  • Se corrigió el comando Get Sessions
  • Se corrigió la verificación de errores en el comando Switch To Frame
  • Se corrigió el comando Get Page Source

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 73.0.3683.68

Compatible con la versión 73 de Chrome

  • Se corrigió un error que generaba un archivo debug.log inesperado en Windows.
  • Se corrigió el código de error que devolvía el comando Execute Script en algunos casos.
  • Se agregó el encabezado cache-control en las respuestas de ChromeDriver
  • Se hizo que el servidor HTTP mantenga la conexión activa de forma predeterminada
  • Se corrigió el comando Close Window para que controle correctamente las instrucciones del usuario.
  • Se corrigió el código de error que se devolvía al enviar teclas a un elemento inhabilitado
  • Se mejoró el cumplimiento de las especificaciones del control de valores de tiempo de espera
  • Se mejoró el cumplimiento de la especificación del comando Add Cookie.
    • Aumento de la longitud de la cola de escucha del servidor HTTP
  • Se corrigió el comando Is Element Displayed en el shadow DOM v0.
    • Se agregó una advertencia sobre el cambio de comportamiento del comando Element Clear en el archivo de registro.
  • Se corrigió el comando Execute Script para convertir correctamente document.all al formato JSON.
  • Se mejoró el manejo de referencias de elementos incorrectas

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 2.46

Compatible con Chrome 71 a 73

  • Se corrigió el código de error que devolvía el comando Execute Script en algunos casos.
  • Se hizo que el servidor HTTP mantenga la conexión activa de forma predeterminada
  • Se corrigió el comando Close Window para que controle correctamente las instrucciones del usuario.
  • Se corrigió el código de error que se devolvía al enviar teclas a un elemento inhabilitado
  • Se mejoró el cumplimiento de las especificaciones del control de valores de tiempo de espera
  • Se mejoró el cumplimiento de las especificaciones del comando Add Cookie
  • Se mejoró el cumplimiento de las especificaciones del comando Switch to Frame
  • Aumento de la longitud de la cola de escucha del servidor HTTP
  • Se corrigió el comando Is Element Displayed en el DOM de Shadow v0.
  • Comando Fixed Element Double Click
  • Se agregó una advertencia sobre el cambio de comportamiento del comando Element Clear en el archivo de registro.
  • Se corrigió el comando Execute Script para convertir correctamente document.all al formato JSON.
  • Se mejoró el manejo de referencias de elementos incorrectas

Para obtener más detalles, consulta las notas de la versión.

ChromeDriver 2.45

Compatible con Chrome 70-72

  • Fixed New Session no cumple con las especificaciones
  • Se corrigió el problema por el que ChromeDriver no debería iniciar Chrome si las versiones de Chrome y ChromeDriver son incompatibles
  • Se corrigió el error por el que el comando Find Element devolvía un código de error incorrecto cuando se usaba un localizador no válido.
  • Se corrigió el problema por el que algunos códigos de estado de ChromeDriver eran incorrectos.
  • Se corrigió el error de compilación en JS dentro de WebViewImpl::DispatchTouchEventsForMouseEvents
  • Los comandos de tamaño de ventana fijo deben controlar las instrucciones del usuario
  • Se corrigió el problema por el que ChromeDriver no iniciaba Chrome correctamente con la opción de Chrome "user-data-dir=".
  • El comando Fixed Status no cumple con las especificaciones
  • Se corrigió la compatibilidad con Add support for strictFileInteractability

ChromeDriver 2.44

Compatible con Chrome v69-71

  • Se corrigió WindowMaximize en Mac
  • Se corrigió el error "Alerta abierta incorrecta" para la llamada de identificador de ventana
  • Fixed Element Send Keys debería obtener la propiedad "text" en el modo W3C
  • Se corrigió el caso especial de XML en el que Is Element Enabled no se controla según las especificaciones.
  • Se corrigió el caso especial de XML de Get Element CSS Value que no se controlaba según la especificación.
  • Fixed Set Window Rect debe verificar si hay entradas no válidas
  • Se corrigió la compatibilidad con los nuevos modos de unhandledPromptBehavior

ChromeDriver 2.43

Compatible con Chrome v69-71

Entre los cambios, se incluyen los siguientes:

  • Se corrigió el análisis de la configuración del proxy que no cumple con los estándares
  • Se corrigió el problema de inestabilidad del comando Launch app
  • Se corrigió el problema por el que la captura de pantalla del elemento dentro del iframe se tomaba de forma incorrecta.
  • Se agregó compatibilidad con el cambio de tamaño de ventanas a través de una conexión remota en ChromeDriver
  • Se corrigió el problema por el que no se controlaban los códigos de error en el elemento Clear.
  • Se corrigió el problema por el que no se esperaba hasta que el elemento fuera visible
  • Se corrigió el error por el que no se implementaba la propiedad Get element
  • El cambio a fotograma fijo no cumple con las especificaciones
  • Se corrigió el error por el que Execute Async Script no devolvía códigos de error que cumplieran con las especificaciones.
  • Se corrigió el problema por el que Execute Script no devolvía códigos de error que cumplieran con las especificaciones.
  • Se corrigió el código de error en ExecuteGet que no se ajustaba a las especificaciones.
  • El texto de alerta fijo no devuelve códigos de error que cumplan con las especificaciones
  • Se corrigió clear() en un elemento input type="date" que simula que el elemento no es editable por el usuario
  • Se corrigió el problema por el que Chromedriver obtenía el identificador de ventana de la pestaña que se abría manualmente.
  • Se corrigió la opción para permitir agregar o iniciar un nuevo archivo de registro para chromedriver
  • Se corrigió el problema por el que New Session no invocaba el modo W3C si la marca estaba en firstMatch.

ChromeDriver 2.42

Compatible con Chrome v68-70

Entre los cambios, se incluyen los siguientes:

  • Se corrigió ClickElement en la emulación de dispositivos móviles
  • IPs fijas incluidas en la lista blanca con IPv4
  • Se corrigió el inicio de ChromeDriver con la marca whitelisted-ips en Mac OS
  • Se corrigió SetTimeout para que acepte los formatos anteriores a W3C y los de W3C.
  • Se corrigió la captura de pantalla del elemento de toma
  • El ChromeDriver corregido también busca archivos binarios de Chrome en una ruta de acceso del sistema
  • Se corrigieron los problemas con Maximizar ventana y Pantalla completa.
  • Se implementó la función de reproducción de registros. ( aún no funciona para Android ni para el navegador remoto)
  • Se corrigió el problema por el que algunos códigos de error no cumplían con el estándar del W3C.
  • Se corrigió el problema por el que console.log con varios argumentos no se controlaba correctamente.
  • Se corrigió GetElementRect para que permita números de punto flotante doble
  • Emulación de toque fija

ChromeDriver 2.41

Compatible con Chrome 67-69

Entre los cambios, se incluyen los siguientes:

  • Se corrigió un problema que se producía cuando ChromeDriver se ejecutaba con la opción "whitelisted-ips".
  • El puerto de depuración remota se devuelve en las capacidades
  • Se implementó la obtención del tamaño de la ventana en Android.
  • Se mejoraron los mensajes de error de inicio de Chrome para computadoras
  • ChromeDriver falla rápidamente cuando no puede iniciar los archivos binarios de Chrome
  • El valor de devolución de Close Window cumple con las especificaciones