Téléchargements

Versions antérieures de Chrome

Pour les versions antérieures de Chrome, voici les versions de ChromeDriver compatibles.

Pour en savoir plus sur la sélection de la version appropriée de ChromeDriver, consultez la page Sélection de la version.

ChromeDriver 148

Correction de bugs

  • Accès au DOM : correction d'un plantage qui se produisait lors de la simulation d'un clic sur un bouton à l'intérieur d'un iframe lui-même imbriqué dans une racine fantôme fermée. Le JavaScript utilisé précédemment pour trouver l'ID de l'élément de frame du propriétaire ne pouvait pas traverser les shadow roots fermées. La nouvelle implémentation utilise directement le format f.X.d.Y.e.Z pour résoudre le frame (crrev.com/c/7594919, Bug: 469831357).
  • Sécurité : renforcement de la désinfection des arguments Chrome pour éviter une éventuelle faille impliquant l'injection d'arguments positionnels (crrev.com/c/7695604, bug 494464734).
  • Tests : le délai avant expiration de kImplicitWait a été augmenté pour les tests FindElement(s)WhileNavigating dans commands_unittest lors de l'exécution sous AddressSanitizer (ASAN). Le délai d'expiration par défaut de 3 s était insuffisant pour que la boucle de réessai consomme toutes les erreurs fictives sous la surcharge ASAN, ce qui entraînait une instabilité (crrev.com/c/7657276).

Modifications et refactorisations internes

  • Normes C++ : remplacement des inclusions superflues de base/functional/callback_forward.h dans les fichiers //chrome .cc, application de l'utilisation de callback.h lorsque les rappels sont réellement utilisés (crrev.com/c/7200285, Bug: 40318405). Déplacement de logging::LoggingSettings de base/logging.h vers son propre en-tête base/logging/logging_settings.h pour améliorer l'efficacité de la compilation (crrev.com/c/7173024, relanding crrev.com/c/7160150 après la restauration crrev.com/c/7170750). Correction de diverses erreurs IWYU liées à base/logging.h (crrev.com/c/7730403, Bug : 499476145).
  • Normes C++ : les vérifications de la carte redondante count(key) suivies des recherches ont été remplacées par des accès à l'itérateur find(key) plus efficaces (crrev.com/c/7705392, crrev.com/c/7693277, Bug: 452950815). ThreadDelegate a été injecté via le constructeur Thread pour améliorer l'encapsulation, et une option Restartable a été ajoutée à Thread pour les cas où les threads doivent être redémarrés (crrev.com/c/7696887, Bug: 40881604).
  • Sécurité de la mémoire : conversion des macros #pragma allow_unsafe_buffers à l'échelle du fichier en macros UNSAFE_TODO() granulaires dans chrome/ (crrev.com/c/7132241, Bug: 409340989). Raccourcissement de IOBuffer->span().first() en IOBuffer->first() (crrev.com/c/7159119).
  • Dépendances : la dépendance crossbench a été déployée, ce qui permet de corriger les problèmes de découverte des binaires ChromeDriver créés localement sur macOS et Android (crrev.com/c/7673978).
  • Tests : réactivation du schéma module dans chromedriver_py_tests suite aux corrections apportées à l'infrastructure de compilation et de test sous-jacente (crrev.com/c/7707960).

ChromeDriver 147

Correction de bugs

  • Tests : ajout d'un test de régression hermétique pour vérifier que ElementClick gère correctement les clics sur les iFrames d'origine croisée avec des éléments de superposition, en particulier dans les scénarios d'isolation de site. Cela permet de s'assurer que les clics ne sont pas redirigés par erreur vers le contenu intégré au lieu de la superposition visible (crrev.com/c/7261984, Bug: 42321834, Bug: 42322220).

Modifications et refactorisations internes

  • Normes C++ : les modes et fonctions de décodage d'URL ont été renommés pour respecter le guide de style Google C++, en remplaçant DecodeURLMode par DecodeUrlMode et DecodeURLEscapeSequences() par DecodeUrlEscapeSequences() (crrev.com/c/7593238). Ajout de url::UrlEscapeDecoder pour simplifier l'utilisation du décodage d'URL dans l'ensemble du code (crrev.com/c/7610180). Suppression des inclusions build/branding_buildflags.h superflues des fichiers //chrome (crrev.com/c/7595125, Bug: 40318405). Suppression de la logique BUILDFLAG(IS_FUCHSIA) de //chrome, sauf dans ChromeDriver (crrev.com/c/5485913, Bug: 41481724).
  • Sécurité de la mémoire (spanification) : résolution des marqueurs UNSAFE_TODO dans les utilitaires ChromeDriver, en les migrant vers des implémentations sécurisées basées sur des spans (crrev.com/c/7562602, Bug : 435317390).

ChromeDriver 146

Correction de bugs

  • Stabilité : correction d'un plantage de ChromeDriver qui pouvait se produire lors du traitement d'une commande si la fenêtre se fermait simultanément (par exemple, lors de l'attente de la fin d'une navigation). Le correctif acquiert un verrou sur l'objet WebView pour l'empêcher d'être supprimé prématurément (crrev.com/c/7257074, Bug: 468228355).
  • Sécurité : ajout d'une vérification de l'en-tête Origin pour les connexions WebSocket entrantes au serveur HTTP ChromeDriver, ce qui empêche le détournement potentiel d'origine croisée (crrev.com/c/7538400, Bug: 478783560).
  • Tests : testWebviewDetactedDuringClick a été déplacé vers le filtre "flaky" et est ignoré dans toutes les exécutions, et pas seulement en mode sans affichage (crrev.com/c/7545378, Bug : 481485821).

Modifications et refactorisations internes

ChromeDriver 145

Nouvelles fonctionnalités

  • Tests : mise à jour du framework de test run_py_tests.py pour accepter les tests de chaînes déterministes de différentes longueurs (par exemple, 53, 101 et 501 caractères) ciblant les éléments input, textarea et contenteditable. Cela permet de couvrir la régression et de s'assurer qu'aucun caractère n'est supprimé lors des longues opérations send_keys (crrev.com/c/7221410, Bug: 428116078).
  • Tests : ajout d'un test spécifique pour l'élément HTML <selectlist> (crrev.com/c/7420729, Bug : 342889200).

Correction de bugs

  • Captures d'écran : l'échelle des captures d'écran des éléments a été rétablie, car la spécification WebDriver ne prescrit pas de mise à l'échelle et elle était incohérente avec les autres fonctions de capture d'écran (crrev.com/c/7409603, Bug: 42323022).
  • Tests : correction des échecs dans testClientHintsDeviceNameIPhoneX et testClientHintsDeviceNameIPad en mettant à jour les attentes des tests ChromeDriver pour qu'elles correspondent aux valeurs correctes récentes (pour les champs "platform", "platformVersion", "model" et "mobile") introduites dans le frontend des outils de développement (crrev.com/c/7408699, Bug : 474179501).

Modifications et refactorisations internes

  • Normes C++ : migration de diverses utilisations de base::Contains() vers std::ranges::contains() dans //chrome (crrev.com/c/7411011, Bug : 470391351), y compris les corrections de mise en forme nécessaires (crrev.com/c/7247217). Les paramètres de chaîne ont été refactorisés en std::string_view pour éviter les allocations de chaîne inutiles lors de l'utilisation de substr() (crrev.com/c/7350716). Suppression des inclusions <map> superflues des en-têtes //chrome (crrev.com/c/7225838, Bug: 40318405). Correction de l'ordre des inclusions dans certains fichiers (crrev.com/c/7366868). Remplacement des anciens rappels BodyAsStringCallbackDeprecated dans les utilisations de SimpleURLLoader par BodyAsStringCallback, qui utilise std::optional au lieu de std::unique_ptr (crrev.com/c/7210000, Bug : 40258809).
  • Tests : réintégration de la configuration de l'essai sur le terrain InfobarPrioritization, y compris des correctifs pour éviter les plantages dans les tests du navigateur ChromeDriver lors de la gestion des info-bulles en attente qui n'ont pas été ajoutées à la hiérarchie des vues (crrev.com/c/7223590, Bug : 447176374). Réactivation du filtrage par pays et par langue pour la fonctionnalité Glic, qui avait été précédemment annulée en raison d'échecs de tests sans rapport (crrev.com/c/7245749, réactivation de crrev.com/c/7148759 après l'annulation crrev.com/c/7233767, Bug: 454431875).

ChromeDriver 144

Nouvelles fonctionnalités

  • Autorisations : la commande SetPermission a été mise à jour pour respecter la dernière spécification W3C, en utilisant l'URL du frame actuel (origine intégrée) en plus de l'origine de premier niveau. Cela configure correctement les autorisations telles que storage-access qui s'appuient sur le contexte intégré (crrev.com/c/7106801, relanding crrev.com/c/7093216 après la restauration crrev.com/c/7104484, Bug: 384959114).
  • Tests : ajout de testMetadata (y compris le nom du test) à la charge utile d'importation des tests ChromeDriver pour prendre en charge l'approbateur de fiabilité lors de l'utilisation d'ID de test structurés (crrev.com/c/7124354, Bug: 456432041).

Correction de bugs

  • Cycle de vie cible : correction d'un bug qui entraînait le blocage de ChromeDriver si un frame parent était détaché alors qu'un frame enfant attendait une réponse à une commande. ChromeDriver détache désormais explicitement et de manière transitive les frames descendants lorsqu'un WebViewImpl parent est verrouillé et marqué comme détaché lors du traitement des commandes (crrev.com/c/7080912, Bug: 438436830).
  • Gestion des fenêtres : désactivation de la mise en arrière-plan des fenêtres masquées, spécifiquement pour les sessions ChromeDriver. Cela résout les problèmes liés à WebDriver BiDi, où les tests pouvaient échouer si le navigateur considérait à tort qu'une fenêtre était masquée et la limitait (crrev.com/c/7128058, Bug : 458027819).

Modifications et refactorisations internes

  • Normes C++ : suppression des inclusions superflues de base/functional/callback_forward.h dans //chrome fichiers .cc, application de l'utilisation de callback.h lorsque des rappels sont réellement utilisés (crrev.com/c/7200285, Bug: 40318405). Déplacement de logging::LoggingSettings de base/logging.h vers son propre en-tête base/logging/logging_settings.h pour améliorer l'efficacité de la compilation (crrev.com/c/7173024, relanding crrev.com/c/7160150 après la restauration crrev.com/c/7170750). Migration des utilisations de base::HexEncode vers la version plus récente base::HexEncodeLower (crrev.com/c/7103100, Bug : 456472080).
  • Sécurité de la mémoire (spanification) : migration de WriteToPipe et WriteToPipeNoBestEffort dans les tests unitaires PipeBuilder et PipeConnection pour accepter base::span, corrigeant l'utilisation non sécurisée du tampon (crrev.com/c/7090293, Bug : 455758227). Conversion des macros #pragma allow_unsafe_buffers à l'échelle du fichier en macros UNSAFE_TODO() granulaires dans chrome/ (crrev.com/c/7132241, Bug: 409340989). Raccourcissement de IOBuffer->span().first() en IOBuffer->first() (crrev.com/c/7159119).

ChromeDriver 143

Correction de bugs

  • Stabilité : correction d'un plantage de type "utilisation après libération" (UAF) dans OverrideNetworkConditions. Le pointeur brut enregistré pour une application ultérieure était libéré entre les appels consécutifs. Il est désormais géré correctement (crrev.com/c/7047422, Bug : 42323833).
  • Tests : correction des tests tactiles Android ChromeDriver instables en utilisant l'API WaitForCondition pour une synchronisation plus fiable (crrev.com/c/6978928, Bug : 42321861).
  • Pré-échauffement DSE : la fonctionnalité Prewarm a été désactivée par défaut dans ChromeDriver via le commutateur --disable-features=Prewarm. Cela empêche les pages pré-échauffées d'interférer avec l'exécution des tests et la découverte des cibles (crrev.com/c/7007072, Bug : 431928370).

Modifications et refactorisations internes

  • Normes C++ : remplacement de ref_counted.h par scoped_refptr.h dans les en-têtes //chrome lorsque seul le pointeur intelligent est utilisé, ce qui améliore l'efficacité de la compilation (crrev.com/c/7080753, Bug 40245294). Migration des accesseurs GURL vers leurs variantes Get* (par exemple, GetSpec() au lieu de spec()) pour indiquer clairement l'allocation de chaînes, ce qui dissuade les pénalités de performances accidentelles (crrev.com/c/7002119, Bug: 448174617).
  • Tests : suppression des modèles de vérification redondants dans devtools_client_impl_unittest.cc à l'aide de ADD_FAILURE() (crrev.com/c/6998270). Ajout d'un test de régression pour crbug.com/413382905 (crrev.com/c/6879417).

ChromeDriver 142

Nouvelles fonctionnalités

  • Diagnostics : ajout de l'état TERMINATION_STATUS_EVICTED_FOR_MEMORY pour différencier les processus arrêtés de manière proactive par le navigateur (pour économiser de la mémoire) de ceux qui ont planté en raison d'erreurs de mémoire insuffisante (OOM). Actuellement, ce comportement est identique à celui d'un plantage OOM (affichage d'un onglet triste), mais il prépare le terrain pour une gestion distincte à l'avenir (crrev.com/c/6991933, Bug: 394092280).
  • Diagnostics : ajout de la fonctionnalité goog:processID à la réponse WebDriver, qui renvoie l'ID du processus principal du navigateur pour ordinateur. ChromeDriver est ainsi aligné sur moz:processID de Firefox et facilite le test des API d'accessibilité de la plate-forme (crrev.com/c/5825307, Bug: 438884256).
  • Tests : ajout de la compatibilité avec l'importation d'ID de test structurés dans ResultSink pour les tests d'intégration Python de ChromeDriver (crrev.com/c/6916708, Bug : 418015486).

Correction de bugs

  • Diagnostics : le comportement de ChromeDriver modifié lors d'une sortie normale de Chrome ne génère plus de message d'erreur générique déroutant lié à l'utilisation de user-data-dir. Il indique désormais explicitement que l'instance a été arrêtée et redirige l'utilisateur vers les journaux détaillés pour l'erreur spécifique générée par Chrome (crrev.com/c/6977507, Bug : 42323434).
  • Initialisation : la structure d'initialisation de ChromeDriver a été mise à jour pour rester compatible avec les modifications apportées à Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
  • Android : correction de CheckAppInstalled sur les anciennes versions d'Android (antérieures à Android 11) où l'indicateur --user cur n'est pas pris en charge par le gestionnaire de paquets (crrev.com/c/6785949, Bug : 433885051).
  • Tests : correction d'un bug qui entraînait le remplacement incorrect des commutateurs de fonctionnalités par défaut dans ChromeDriver.IgnoreDuplicateNavs La fonctionnalité a été désactivée pour les sessions ChromeDriver, et la logique Switches::SetFromSwitches a été corrigée (crrev.com/c/6949166, Bug: 445332809).

Modifications et refactorisations internes

  • Normes C++ : remplacement de plusieurs appels base::JSONWriter::Write() obsolètes par base::WriteJson(), en conservant le comportement de renvoi d'une chaîne vide en cas d'échec lorsque la valeur renvoyée n'a pas été vérifiée (crrev.com/c/6969134, crrev.com/c/6929101, Bug: 443929217). L'activation explicite est désormais requise pour les options d'analyse JSON non conformes (par exemple, l'autorisation des commentaires) dans base::JSONReader::Read et base::JSONReader::ReadAndReturnValueWithError (crrev.com/c/6990988, crrev.com/c/6980533, Bug: 446188265). Suppression des pragmas #pragma allow_unsafe_buffers à l'échelle du fichier suite aux efforts de spanification manuelle (crrev.com/c/6778035, Bug: 409340989). Utilisations nettoyées de la macro LazyInstance qui fuit (crrev.com/c/6781377, Bug: 432815283). Inclusion des en-têtes manquants pour http_response_headers.h via IWYU (crrev.com/c/6894196, Bug: 40216326).
  • Sécurité de la mémoire (spanification) : de nombreux pointeurs ont été automatiquement spanifiés dans le répertoire chrome/ pour les versions Linux, avec ajout de CHECK non fatales lorsque les paramètres de taille étaient jugés redondants (crrev.com/c/6734592, Bug : 431824299).
  • Tests : temporairement désactivé testDoesntCrashOnClosingBrowserFromAsyncScript sur macOS (crrev.com/c/6995358, Bug : 446461733). Correction de fautes de frappe dans les noms des méthodes de test impliquant des certificats (crrev.com/c/6950683). Fichiers GN au format automatique //chrome/test (crrev.com/c/6789277, Bug: 40760278).
  • FedCM : ajout d'une fonction ShouldShowAccountsPassiveDialog à IdentityDialogController pour vérifier de manière synchrone si une boîte de dialogue de comptes doit être affichée, ce qui corrige un plantage lié aux vérifications asynchrones et à l'instrumentation des outils de développement (crrev.com/c/6780413, Bug : 425801332).
  • Préchargement DSE : ajout de Page.setPrewarmingAllowed au protocole DevTools comme solution à court terme pour activer ou désactiver manuellement le préchargement, correction des tests associés pour s'assurer qu'ils interagissent correctement avec la page principale (crrev.com/c/6847287, Bug : 431928370). Activation de la fonctionnalité DSEPrewarm dans fieldtrial_testing_config.json pour macOS et Windows après résolution des problèmes de fiabilité (crrev.com/c/6951835, Bug: 431928370, Bug: 435621391). (Remarque : La commande CDP et l'activation de l'essai sur le terrain ont toutes deux été annulées, car elles entraînaient des modifications incompatibles pour les utilisateurs de WebDriver en exposant des cibles inattendues et en provoquant d'autres problèmes en aval (crrev.com/c/6966133, crrev.com/c/6966161, Bug : 445883308)).
  • Nettoyage : suppression des références restantes au projet WebLayer non compatible dans le code Android (crrev.com/c/6792520, Bug : 40272607).

ChromeDriver 141

Nouvelles fonctionnalités

  • Test : ajout de la prise en charge de l'indicateur --enable-per-test-tracing à run_wpt_tests.py, correspondant au comportement de run_web_tests.py. Cette commande récupère les événements de trace JSON à partir d'un tampon ChromeDriver interne et les enregistre dans le répertoire des résultats des tests (crrev.com/c/6820247, Bug : 434017035).

Correction de bugs

  • Diagnostic : empêche ChromeDriver d'imprimer sa propre trace de la pile interne lors du renvoi d'une erreur kTabCrashed. Cela évite de dérouter les utilisateurs, tout en garantissant que la trace de la pile de plantage du moteur de rendu reste dans les journaux (crrev.com/c/6841669, Bug: 395131239).

Modifications et refactorisations internes

  • Normes C++ : remplacement des appels memset potentiellement dangereux par l'initialisation d'agrégats C++ standard (instance = {}) dans chrome/ pour éviter de contourner les constructeurs et assurer la sécurité de la mémoire (crrev.com/c/6875520, Bug : 435317390). Ajout des directives #include manquantes pour //base/time/time.h via IWYU (crrev.com/c/6832689, Bug: 40216326). Réécriture des pragmas de tampon non sécurisé forcé (crrev.com/c/6828538).
  • Tests : ajout d'un test de régression pour crbug.com/413382905 (crrev.com/c/6879417).
  • Transitions d'affichage : réintégration du correctif des transitions d'affichage, qui met à jour le travail effectué avant la résolution de la promesse terminée, après qu'une précédente annulation spéculative liée à des échecs de tests ChromeDriver s'est avérée incorrecte (crrev.com/c/6846765, réintégration de crrev.com/c/6806850 après l'annulation crrev.com/c/6808537).

ChromeDriver 140

Correction de bugs

  • Sélection de la cible : correction d'un problème qui pouvait entraîner une course entre la fenêtre des outils de développement et la page principale pour être sélectionnée comme fenêtre principale lorsque Chrome était lancé avec --auto-open-devtools-for-tabs. ChromeDriver exclut désormais explicitement les cibles préfixées par devtools:// lors de la détermination de la fenêtre principale (crrev.com/c/6769505, Bug: 427908560).
  • Sélection de la cible : empêche ChromeDriver de calculer de manière incorrecte le point central visible des éléments en ignorant tout écrêtage overflow:hidden imposé par les ancêtres. Cela permet d'aligner le calcul sur la spécification WebDriver et d'autres scénarios PerformActions (crrev.com/c/6735230, Bug: 42322257).
  • Android : correction de la fonction CheckAppInstalled sur les anciennes versions d'Android (antérieures à Android 11) où l'indicateur --user cur pour le gestionnaire de packages n'est pas pris en charge (crrev.com/c/6785949, Bug : 433885051).
  • Tests : correction de l'instabilité dans la suite de tests chromedriver_py_tests causée par la fonctionnalité DSEPrewarm. ChromeDriver désactive désormais le déclencheur de préchauffage lorsqu'un client CDP est associé pour éviter un nombre de cibles inattendu lors des tests (crrev.com/c/6764274, Bug : 423465927, Bug : 431928370).
  • Tests : l'ajout de la fonction ShouldShowAccountsPassiveDialog à IdentityDialogController (qui fait partie de FedCM) a été annulé, car il avait entraîné une régression (crrev.com/c/6780413, Bug : 425801332).

Modifications et refactorisations internes

ChromeDriver 139

Correction de bugs

  • Structure d'initialisation : la structure d'initialisation de ChromeDriver a été mise à jour pour rester compatible avec les mises à jour de Selenium WebDriver v4.16.0 (crrev.com/c/6630600).
  • Analyse des arguments : plusieurs arguments --js-flags ont été fusionnés (comme pour --enable-features) au lieu de ne prendre en compte que le dernier fourni. Cela améliore la facilité d'utilisation lors de la transmission d'indicateurs V8 complexes (crrev.com/c/6612042, Bug: 421941798).

Modifications et refactorisations internes

  • Sécurité de la mémoire (spanification) : remplacement des utilisations obsolètes de base::MakeStringPiece() par std::string_view dans //chrome/test (crrev.com/c/6628089, Bug : 422940464). Inclusion de base/strings/string_view_util.h lorsque base::as_string_view() est utilisé, en préparation des futures migrations d'espaces de noms (crrev.com/c/6625024, Bug: 423048781).
  • Normes C++ : amélioration de la conformité avec Include What You Use (IWYU) dans //chrome en incluant explicitement <vector> (crrev.com/c/6652818), base/notimplemented.h (et en supprimant base/notreached.h lorsqu'il n'est pas utilisé) (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) et en supprimant les inclusions superflues de base/debug/stack_trace.h (crrev.com/c/6622838).
  • Tests : l'option --driver-logging a été transférée à run_wpt_tests.py, ce qui permet au script de vider ChromeDriver et le navigateur stderr même à des niveaux de verbosité inférieurs (crrev.com/c/6608138, Bug : 421262910).
  • Tests : réactivation des tests d'intégration ChromeDriver précédemment désactivés : tests de capture d'écran (testTakeElementScreenshot*) (crrev.com/c/6598797, bug 42321815), tests de fermeture de fenêtre via JavaScript (testCloseWindowUsingJavascript*) (crrev.com/c/6598978, bug 42321150) et tests de taille de fenêtre headless-shell (crrev.com/c/6621336, bug 42323661).
  • Tests : correction de run_wpt_tests.py --stable pour identifier et utiliser correctement la version stable actuelle de Clank (Android) en analysant l'APK, et mise à jour du script pour télécharger la version ChromeDriver correspondante à partir de Chrome for Testing (CfT) dans un répertoire temporaire au lieu de polluer l'extraction (crrev.com/c/6635694, Bug : 402548382).
  • Infrastructure de compilation : suppression d'une dépendance de compilation inutile sur write_build_config.py en interdisant aux cibles android_resources() d'avoir des fichiers manifestes, car la fusion des fichiers manifestes et la dénomination des packages R.java sont désormais gérées par des attributs spécialisés (crrev.com/c/6625266, Bug: 413331591).
  • FedCM : correction d'un flag de fonctionnalité de configuration Finch lié à FedCM (crrev.com/c/6614137, bug : 421959289).

ChromeDriver 138

Nouvelles fonctionnalités

  • Gestion des fonctionnalités d'affichage : le comportement de ChromeDriver pour les segments de fenêtre d'affichage a été mis à jour pour correspondre à une résolution récente du CSS Working Group. Il renvoie désormais systématiquement un tableau avec un seul segment lorsqu'un appareil pliable est utilisé à plat ou pour tous les appareils non pliables. Cela correspond au comportement des requêtes média et atténue les risques d'empreinte numérique (crrev.com/c/6469455, Bug: 414430842).
  • Préférences et état local (Android) : ajout de la compatibilité avec les fonctionnalités localState et prefs lors de l'exécution de ChromeDriver sur des appareils Android. Cette méthode repose sur ADB et nécessite un indicateur user-data-dir personnalisé. Actuellement, elle initialise l'état avec des modèles par défaut (crrev.com/c/6397155, Bug 406427226).

Correction de bugs

  • Stabilité : correction d'un plantage de ChromeDriver sur macOS lorsqu'un utilisateur fermait la boîte de dialogue de première utilisation (FRE) à l'aide du bouton "Continuer". Le plantage résultait du remplacement d'un état d'erreur kTargetDetached et de la tentative d'accès à un WebView non valide (crrev.com/c/6538867, Bug: 410599467).
  • Tests de performances : correction du programme d'exécution de tests crossbench sur les robots pinpoint Windows qui tentaient à tort de localiser le binaire ChromeDriver à l'aide d'un chemin ../Release_x64 obsolète lorsque --browser=release_x64 était transmis, ce qui entraînait le téléchargement d'un ancien binaire au lieu d'utiliser la version locale (crrev.com/c/6502134).

Modifications et refactorisations internes

  • Sécurité de la mémoire (spanification) : remplacement des pointeurs non vérifiés dans WebSocket::OnReadDuringHandshake et WebSocket::OnReadDuringOpen par base::span, ce qui résout les avertissements unsafe-buffer-usage (crrev.com/c/6557346, Bug : 354307328). Suppression des pragmas #pragma allow_unsafe_buffers inutiles dans chrome/test/chromedriver qui n'étaient plus nécessaires après d'autres migrations (crrev.com/c/6503154, Bug: 414858406).
  • Normes C++ : suppression des directives #include "url/gurl.h" et #include <queue> superflues dans les en-têtes chrome/, ajout de déclarations anticipées le cas échéant pour améliorer les temps de compilation (crrev.com/c/6578272, crrev.com/c/6570349, Bug : 40318405).
  • Migration de l'API : migration de RSAPrivateKey vers crypto::PrivateKey et de SHA256HashString vers crypto::Sha256, ce qui permet de supprimer un cas de gestion des exceptions obsolète, car les nouvelles API de génération de clés sont infaillibles (crrev.com/c/6490294, Bug : 372283556).
  • Tests : ajout de l'attribut OwnContributionEstimate aux commandes d'automatisation de l'API Compute Pressure (implémentations CDP et testdriver) (crrev.com/c/6373001, Bug : 402033762).
  • Tests : correction des tests d'intégration vérifiant ClearDisplayFeatures sur les robots d'intégration continue (CFT) en simplifiant les assertions pour vérifier que les segments de la fenêtre d'affichage sont rétablis à la taille par défaut (crrev.com/c/6535067, Bug : 417195296).
  • Tests : augmentation des délais d'attente pour les tests WebDriver Protected Audience afin de résoudre les problèmes de fiabilité sur les robots CI plus lents (crrev.com/c/6494277).

ChromeDriver 137

Nouvelles fonctionnalités

  • Gestion des fonctionnalités d'affichage : ajout de commandes ChromeDriver pour émuler et effacer les fonctionnalités d'affichage, en implémentant les exigences d'automatisation pour les API Viewport Segments (CSS et JS). Cela permet aux développeurs de tester par programmation les scénarios de pli ou de charnière sur les appareils à double écran ou pliables (crrev.com/c/6368674, Bug: 40137084).
  • BiDi : ChromeDriver a été mis à jour pour exécuter le mappeur BiDi dans une cible masquée par défaut. Cela empêche la page data:, du mappeur d'interférer avec l'exécution et la visibilité des tests. Pour déboguer le mappeur, les clients peuvent transmettre l'indicateur --debug-bidi-mapper pour l'exécuter dans un onglet visible (crrev.com/c/6441064, relanding crrev.com/c/6433672 après la restauration crrev.com/c/6439633, Bug: 402339952).

Correction de bugs

  • BiDi : empêche ChromeDriver de fermer incorrectement l'intégralité de la session de navigateur lors du traitement des commandes BiDi (comme browsingContext.close) s'il perd la trace des cibles créées par d'autres sessions CDP ou BiDi. Il synchronise désormais explicitement les onglets de premier niveau avant de décider de fermer le navigateur (crrev.com/c/6440293, Bug : 42323838).
  • BiDi : aligné sur la spécification WebDriver BiDi en amont, en s'assurant que ChromeDriver supprime la fonctionnalité goog:channel si elle est transmise sous forme de chaîne vide, en la traitant de la même manière qu'un canal manquant (crrev.com/c/6438865, Bug : 409282307).
  • Entrée : correction d'un problème où les événements tactiles et de pointeur échouaient ou se comportaient de manière incorrecte en mettant à jour ChromeDriver pour prendre en charge les coordonnées x et y fractionnaires (à virgule flottante) dans les commandes de déplacement du pointeur (crrev.com/c/6440834, Bug: 409684333).
  • Sélection de la cible : empêche les iFrames PDF hors processus (OOPIF) ouverts dans les vues Invité (lorsque la fonctionnalité PdfOopif est désactivée) de se déverser dans la liste des cibles de premier niveau. La logique de filtrage a été étendue pour exclure correctement ces cibles préfixées chrome-extension:// (crrev.com/c/6383500, Bug: 396611138).

Modifications et refactorisations internes

  • Normes C++ : réintégration de la modification visant à utiliser std::string_view pour les noms de fichiers dans LogMessage et les événements de trace, ce qui résout les problèmes liés à la gestion des chaînes à terminaison nulle qui avaient entraîné les précédentes annulations (crrev.com/c/6430129, réintégration de crrev.com/c/6395097, réintégration de crrev.com/c/6387020 après l'annulation crrev.com/c/6383699).
  • Normes C++ : les appels Environment::GetVar modernisés sur //chrome utilisent l'API de retour std::optional au lieu des paramètres de sortie (crrev.com/c/6417343, Bug : 400758498).
  • Normes C++ : les helpers de gestion spécifiques à Windows ont été refactorisés de win_util.h dans un en-tête windows_handle_util.h dédié pour éviter les problèmes de dépendance circulaire (crrev.com/c/6418805, Bug : 406023316).
  • Tests : ajout d'un gestionnaire de domaine Browser spécifique à Android et implémentation de l'API Browser.getWindowForTarget pour prendre en charge les tests de création de fenêtres Android (crrev.com/c/6427605, Bug : 404932444).
  • Tests : correction de l'instabilité des tests macOS causée par le temps d'initialisation trop long des extensions (crrev.com/c/6423229, bug 407804497).
  • Tests : la création parallèle de user-data-dir dans testBrowserWithUsedUserDataDir a été temporairement désactivée lors de l'exécution sur chrome-headless-shell, car elle était en conflit avec le verrouillage exclusif sur macOS (crrev.com/c/6470455, Bug : 411407649, Bug : 380903149).
  • Extensions : mise à jour des tests Chrome pour qu'ils soient réussis lorsque l'essai ExtensionManifestV2Unsupported est activé. Il s'agit d'une étape fondamentale, mais l'essai lui-même reste désactivé en attendant les mises à jour dans d'autres dépôts (crrev.com/c/6415997, Bug: 367395349). (Remarque : Une tentative précédente d'activer cet essai via la configuration a été annulée crrev.com/c/6397497, annulant crrev.com/c/6358257).
  • Dépendances : déploiement manuel de la dépendance catapult et mise à jour des fichiers pydeps et des références devil_util associés (crrev.com/c/6480814, crrev.com/c/6466865, relanding crrev.com/c/6406098 après l'annulation crrev.com/c/6448910, Bug: 397459590).

ChromeDriver 136

Nouvelles fonctionnalités

  • Cycle de vie du navigateur : ajout d'une fonctionnalité spécifique à Chrome quitGracefully qui oblige ChromeDriver à tenter d'arrêter le navigateur de manière fluide (à l'aide de Browser.close ou SIGTERM) au lieu de la valeur par défaut SIGKILL. Cela donne aux débogueurs comme rr le temps de vider leurs enregistrements avant la fin du processus (crrev.com/c/6322538, relanding crrev.com/c/6269180 après une brève restauration crrev.com/c/6320536, Bug: 339644807).
  • Tests : l'argument run_wpt_tests.py --wrapper a été raccordé en générant un script wrapper temporaire qui préfixe le binaire du navigateur avec le débogueur (par exemple, rr) et ses arguments. Cela permet de contourner l'incapacité de ChromeDriver à remplacer directement le binaire lorsque les args sont traités comme des commutateurs (crrev.com/c/6271108, Bug: 339644807).
  • Test : la traduction est activée par préférence dans TranslateEnabledTest pour prendre en charge un environnement de test où ChromeDriver gère le processus du navigateur et contourne la nouvelle restriction --remote-debugging-port lorsque --user-data-dir est implicite (crrev.com/c/6354089, Bug : 327797500).
  • DevTools : ajout de la compatibilité avec la fonctionnalité multi-instance des outils de développement pour ouvrir un nouvel onglet dans une autre fenêtre sur Android (crrev.com/c/6352169, Bug : 401269942, Bug : 382183406).

Correction de bugs

  • Sélection de la cible : correction d'un problème qui empêchait le filtrage des iFrames (OOPIF) PDF ouverts dans les vues Invité à partir de la liste des cibles de premier niveau lorsque la fonctionnalité PdfOopif était désactivée. Le filtre a été étendu pour inclure le préfixe chrome-extension, ce qui corrige le bug et inclut la couverture pour les extensions Chrome MV3 créant des onglets (crrev.com/c/6383500, Bug: 396611138).
  • Sélection de la cible : correction d'une régression qui entraînait l'échec de la commande getWindowHandles() avec l'état connection refused lors du ciblage des applications Chrome packagées (crrev.com/c/6317161, bug 396622746).

Modifications et refactorisations internes

  • Normes C++ : rétablissement de la modification qui utilise std::string_view pour les noms de fichiers dans LogMessage et les événements de trace, ce qui améliore la compatibilité avec les structures de journalisation Rust qui ne garantissent pas les chaînes terminées par un caractère nul (crrev.com/c/6387020, rétablissement de crrev.com/c/5765705 après l'annulation crrev.com/c/6383699 et une autre annulation crrev.com/c/6395097).
  • Normes C++ : les appels base::Value::Clone() redondants ont été remplacés pour optimiser les performances (crrev.com/c/6361818). Suppression d'avertissements -Wunsafe-buffers-in-libc-calls supplémentaires dans les fichiers spécifiques à Windows pour nettoyer la sortie de compilation (crrev.com/c/6369920, Bug: 390223051).
  • Extensions : l'ajout de l'entrée fieldtrial_testing_config.json pour la phase ExtensionManifestV2Unsupported a été annulé en raison d'un problème (crrev.com/c/6397497, annulation de crrev.com/c/6358257, Bug: 367395349, Bug: 406523920).
  • Documentation : amélioration de la documentation sur les tests ChromeDriver spécifiques à Android (crrev.com/c/6354040).

ChromeDriver 135

Nouvelles fonctionnalités

  • BiDi : le mappeur BiDi a été mis à jour pour hériter des autorisations ChromeDriver lorsque --enable-unsafe-extension-debugging est spécifié. Cela permet aux clients WebDriver BiDi de tester efficacement les extensions qui nécessitent des autorisations généralement détenues par le client WebDriver (crrev.com/c/6288627, Bug 393500934).

Correction de bugs

  • Tests : réactivation et mise à jour des attentes pour plusieurs tests WDSpec qui étaient auparavant marqués comme ayant échoué. Cela restaure la couverture de conformité des spécifications pour les tests réussis (crrev.com/c/6310420).

Modifications et refactorisations internes

  • Nettoyage : toutes les traces de Lacros (y compris IS_CHROMEOS_LACROS et les données de test associées) ont été supprimées de chrome/test/, car Lacros est abandonné et IS_CHROMEOS est désormais la norme (crrev.com/c/6284446, bug 354842935).
  • Nettoyage : suppression de toutes les traces de l'utilitaire md5sum après son remplacement par devil_util, nettoyage des anciennes dépendances de compilation (crrev.com/c/6309939, Bug: 397452007).
  • Normes C++ : l'espace de noms chrome:: a été supprimé de ResultCode et IsNormalResultCode(), qui ont été déplacés vers l'espace de noms global. Les importations de démarrage ChromeOS obsolètes ont également été supprimées (crrev.com/c/6196899, Bug: 41050580).
  • Sécurité de la mémoire : simplification d'un appel std::lower_bound dans ChromeDriver en utilisant std::ranges::lower_bound (crrev.com/c/6223172, Bug : 392116519). Suppression des avertissements unsafe_libc_call pour les fichiers non conformes identifiés initialement en vue de l'application future (crrev.com/c/6187925, Bug : 390223051). Marqué la valeur de retour de std::to_array comme constexpr pour améliorer la sécurité et l'évaluation au moment de la compilation (crrev.com/c/6298909).

ChromeDriver 134

Nouvelles fonctionnalités

  • Mesures d'atténuation du suivi des rebonds (DIPS) : réintégration de la compatibilité de ChromeDriver pour les mesures d'atténuation du suivi des rebonds, à l'aide de la commande RunBounceTrackingMitigations. Le test d'intégration a été restructuré pour utiliser des pages distinctes, ce qui permet de s'assurer que les rebonds avec état sont correctement enregistrés avant l'exécution de la commande. Cette fonctionnalité est compatible avec la spécification nav-tracking-mitigations et est implémentée dans //chrome (crrev.com/c/4935955, Bug: 1474656). (Remarque : Ajouté à l'origine dans crrev.com/c/4873672, puis rétabli).
  • BiDi : ChromeDriver a été mis à jour pour utiliser les propriétés d'extension WebDriver BiDi standards avec le préfixe goog:, conformément aux modifications apportées en amont à chromium-bidi. L'ancienne propriété channel n'est plus autorisée (crrev.com/c/6179410).
  • Windows : ajout d'une ressource de version au binaire chromedriver.exe sur Windows (crrev.com/c/6114586, Bug : 385300323).

Correction de bugs

  • MPArch/Targets : correction d'une régression qui entraînait la découverte et l'association incorrectes des cibles d'extension Chrome (chrome-extension://) lors de la détermination de la cible principale sur ChromeOS, ce qui entraînait l'échec des commandes ultérieures (comme la navigation). Les cibles d'extension sont désormais correctement ignorées lors de cette phase initiale (crrev.com/c/6183202, Bug : 385241097).
  • MPArch/Targets : correction d'une autre régression où les cibles d'onglet pour les background_page d'extension n'étaient pas correctement filtrées des vues Web de premier niveau lorsque la prise en charge des cibles d'extension était désactivée (crrev.com/c/6160774, Bug: 385731198).
  • MPArch/Navigation : correction d'un problème qui pouvait entraîner l'absence momentanée de page active associée à un onglet lors d'une activation MPArch, ce qui entraînait l'affichage incorrect d'un état d'erreur dans ChromeDriver. ChromeDriver attend désormais que l'onglet acquière une nouvelle page et termine sa navigation avant de résoudre l'état (crrev.com/c/6177606).
  • Traitement des journaux : correction d'un plantage (échec DCHECK dans base::Value()) causé par une troncature incorrecte des chaînes de journaux contenant des caractères multibytes. La logique a été mise à jour pour utiliser la détection des limites UnicodeString au lieu de simples vérifications de la longueur std::string, ce qui garantit des points de code valides (crrev.com/c/6210809, Bug: 367752739).
  • Tests : la plupart des WPT liés au prérendu (à l'exception de quelques-uns présentant des problèmes d'API connus) ont été migrés de content_shell vers headless_shell, car la récente refactorisation MPArch permet à ChromeDriver de les exécuter correctement (crrev.com/c/6168830, Bug 42323502, Bug 366257368).

Modifications et refactorisations internes

ChromeDriver 133

Nouvelles fonctionnalités

  • Architecture : refactorisation de ChromeDriver pour prendre en charge l'architecture multipage (MPArch) et les cibles d'onglet. WebViewImpl se connecte désormais aux cibles d'onglet via AutoAttach. Les commandes qui affichaient auparavant une page recherchent désormais la page active sous un onglet. Cette modification permet d'inspecter les pages d'arrière-plan des extensions, qui peuvent désormais être ciblées via la fonctionnalité enable_extension_targets (par défaut, les cibles d'extension sont ignorées) (crrev.com/c/5961156, Bug: 379767670, Bug: 42323502). Correction d'une régression qui entraînait l'inclusion incorrecte des pages d'URL chrome-extension:// en tant que cibles d'extension. La sélection est rétablie sur type=background_page uniquement (crrev.com/c/6093588, Bug : 383141569). L'option enableExtensionTargets a été déplacée vers les options Chrome au lieu d'être une fonctionnalité de premier niveau (crrev.com/c/6093032).
  • Classique : la compatibilité avec les références aux éléments à clés multiples a été rétablie. Cette fonctionnalité non documentée, souvent utilisée pour créer des références compatibles avec les modes W3C et non W3C, est désormais officiellement prise en charge et couverte par des tests d'intégration (crrev.com/c/6063257, Bug : 379584343).

Correction de bugs

  • Stabilité : empêche ChromeDriver de bloquer indéfiniment lors du traitement de la commande browsingContext.close. En utilisant un mécanisme différent pour déterminer si le navigateur doit être fermé, ChromeDriver peut désormais gérer correctement les invites beforeunload sans se bloquer (crrev.com/c/6080431, Bug: 42323838, Bug: 379049702).
  • Navigation : correction d'un bug qui entraînait un blocage lorsqu'une page factice avec l'URL about:blank?test était utilisée. L'heuristique destinée à identifier une nouvelle fenêtre qui ne répond pas (baseURL==about:blank et documentURL!=about:blank) gère désormais correctement ces URL de chaîne de requête comme cas particulier (crrev.com/c/6038039, Bug: 377410086).
  • Navigation : ajout d'une logique permettant de réessayer les commandes qui échouent avec une erreur AbortedByNavigation. ChromeDriver tentera désormais d'exécuter la commande plusieurs fois avant d'abandonner et d'afficher une erreur Timeout standard (crrev.com/c/6012427, Bug: 42323825).
  • Diagnostic : l'erreur kTargetCrashed a été transmise directement via NavigationTracker. Si une cible plante lors de la détection de la navigation, cette erreur spécifique est désormais présentée à l'utilisateur au lieu d'un délai d'attente générique, ce qui améliore les diagnostics (crrev.com/c/6032612, Bug: 377410086).
  • Android : correction des recherches de cibles d'onglet dans chrome_android_impl.cc (crrev.com/c/6110492, Bug : 384781876).
  • Tests : correction de l'instabilité de plusieurs tests de dimensionnement de fenêtres sur win11-arm64 (par exemple, en cliquant sur des éléments masqués). Les tests interrogent désormais la taille de la fenêtre intérieure à plusieurs reprises après une opération de redimensionnement jusqu'à ce qu'elle enregistre correctement une hauteur positive, en tenant compte des repeints de fenêtre lents (crrev.com/c/6012658, Bug: 378470046).
  • Tests : correction de plusieurs problèmes dans les tests d'intégration en mappant les erreurs de connexion Python génériques sur WebSocketConnectionClosedException, en simplifiant la gestion des exceptions (crrev.com/c/6054134), en évitant les conditions de concurrence en utilisant SendCommand au lieu de PostCommand lorsque des effets secondaires immédiats sont attendus (crrev.com/c/6054137) et en remplaçant la dépendance aux effets immédiats de ExecuteScript par des mécanismes de détection de navigation plus fiables (crrev.com/c/6063040, Bug : 42323825).
  • Test : la suppression du flag de fonctionnalité FedCmIdpSigninStatus a été annulée, car elle entraînait des dysfonctionnements (crrev.com/c/6082405, annulation de crrev.com/c/6078693, bug 384866916, bug 381211734).
  • Outils : ajout de la prise en charge de la commande Print dans le script log_replay (crrev.com/c/6010809, Bug : 378451938).

Modifications et refactorisations internes

  • Normes C++ : suppression de l'histogramme Mojo.InvalidUTF8String, permettant le nettoyage des en-têtes mojo publics et des cascades IWYU ultérieures (crrev.com/c/6133861, Bug: 40509710, Bug: 386793084).
  • Normes C++ : évitez les allocations dans WaitableEvent::Wait() en passant de std::list à base::circular_deque (crrev.com/c/6097198).
  • Normes C++ : constructeurs et destructeurs vides définis par l'utilisateur par défaut dans l'ensemble du code source chrome/, dans la mesure du possible (crrev.com/c/6101911, crrev.com/c/6056220, Bug: 381119547).
  • Sécurité de la mémoire (spanification) : migration des tableaux de style C vers std::array dans chrome/ dans le cadre de l'effort plus large visant à résoudre les avertissements -Wunsafe-buffer-usage (crrev.com/c/6043879, Bug : 378069401). Utilisation stricte de size_t dans les fonctions d'étendue (crrev.com/c/6026238, crrev.com/c/6020621).
  • Tests : la fonctionnalité plein écran {ref,crash}tests a été transférée à wpt_internal/, car testdriver la prend désormais en charge (crrev.com/c/6088404).
  • Tests : correction de wptrunner pour iOS afin de localiser correctement le wrapper ChromeDriver lors de l'utilisation de répertoires de sortie non définis par défaut (par exemple, //out/*-ios-wpt-fyi-rel/) en acheminant correctement --build-directory (crrev.com/c/6014940, Bug : 374199289, Bug : 355218109).
  • Tests : ajout du test d'intégration testBrowserCrashWhileWaitingForEvents pour illustrer les cas de régression où les erreurs fatales passent inaperçues pour les clients (crrev.com/c/6025145, Bug : 379049702).
  • Tests : suppression de certains WPT qui plantent lorsqu'ils sont exécutés sous headless_shell combiné à ChromeDriver pour stabiliser les compilateurs (crrev.com/c/6032163, Bug : 377410086).

ChromeDriver 132

Nouvelles fonctionnalités

  • Tests : ajout de la compatibilité avec les paramètres de ligne de commande repeat et retry-limit pour les tests d'intégration ChromeDriver, en les mappant aux arguments standards isolated-script-test-repeat et isolated-script-test-launcher-retry-limit (crrev.com/c/5938195, Bug : 374681919). Pour les tests exécutés en local (hors CI), la valeur par défaut de retry-limit a été remplacée par 0 (crrev.com/c/5953326, Bug: 374681919).
  • WebSockets : implémentation de WebSocketConnection et des classes associées dans EmbeddedTestServer, permettant aux tests liés à WebSocket de migrer depuis SpawnedTestServer. Cela inclut l'encadrement selon le protocole et l'enregistrement simplifié du gestionnaire (crrev.com/c/5849732, Bug: 40812029).

Correction de bugs

  • Stabilité : correction d'un plantage de ChromeDriver qui pouvait se produire si une commande de clic entraînait la fermeture du navigateur, en gérant correctement l'état d'erreur kTargetDetached introduit dans les refactorisations précédentes (crrev.com/c/5934524, Bug : 42323264).
  • Stabilité : correction d'un plantage intermittent dans le test d'intégration testClickNavigateRemoteToLocal sur Mac ARM64 en résolvant une condition de concurrence (crrev.com/c/5975526, Bug : 375971185).
  • Navigation : correction des commandes GoBack et GoForward, qui échouaient auparavant si Page.getNavigationHistory était appelé alors que le document était en train de passer d'un état actif (indiquant une navigation en cours). ChromeDriver réessaie désormais correctement la commande dans ce scénario (crrev.com/c/6011739, Bug : 378433873).
  • Exécution de script : nous avons veillé à ce que les scripts qui déclenchent une navigation ou ferment une fenêtre renvoient correctement une erreur ScriptTimeout standard si le côté navigateur ne garantit pas de résultat, ce qui incite l'utilisateur à éviter les structures de test ambiguës (crrev.com/c/5934265, Bug : 372883701).
  • Exécution de script : correction d'un problème où la fonctionnalité de relecture du journal échouait avec une erreur "réponse de commande inattendue" (crrev.com/c/5961142, Bug : 42323342).
  • Codes d'erreur : la gestion des exceptions de ChromeDriver a été corrigée pour ne plus envelopper de force toutes les exceptions avec une propriété "code" dans une "erreur JavaScript" générique. Cela permet de s'assurer que les erreurs standards telles que "stale element reference" (référence d'élément obsolète) de call_function.js et "invalid element state" (état d'élément non valide) de la fonction Selenium Atoms CLEAR sont correctement propagées à l'utilisateur (crrev.com/c/5937893, Bug: 42323409). Amélioration de la gestion des erreurs dans GetElementTagName pour interpréter correctement les informations manquantes sur le nom de balise comme "l'objet n'est pas un élément" (crrev.com/c/5929087).
  • BiDi : correction d'un problème qui empêchait l'initialisation des sessions BiDi lorsqu'un profil utilisateur personnalisé était utilisé. La page chargée du profil personnalisé peut empêcher le démarrage de BiDiMapper. ChromeDriver s'assure désormais que le premier onglet charge toujours data:, pour fournir une table rase au mappeur (crrev.com/c/5960656, Bug: 366886096).
  • Mode navigation privée : correction d'un bug qui empêchait ChromeDriver de créer des onglets lorsqu'il fonctionnait en mode navigation privée (crrev.com/c/5952980, Bug : 42323352).
  • Tests : correction de l'instabilité du test d'intégration testScriptNavigateRemoteToLocal (qui échouait à un taux de 8,33 %) et ajout de tests d'intégration C++ pour reproduire et vérifier la correction de la condition de concurrence (crrev.com/c/6010867, Bug : 378387680).
  • Tests : de nombreux tests d'intégration instables ont été réactivés sur Mac (testWindowMinimize) et Windows (ChromeDownloadDirTest.testFileDownloadAfterTab, InvalidCertificateTest.*), ainsi qu'à l'échelle mondiale (testShadowDomFindElement, tests de capture d'écran des éléments). Les tests WPT css/css-scrollbars/ instables ont été temporairement déplacés de la coque sans tête vers la coque de contenu (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).

Modifications et refactorisations internes

  • BiDi : la dépendance du mappeur chromium-bidi a été mise à jour pour intégrer les derniers correctifs en amont et les mises à jour du protocole (crrev.com/c/5953339, crrev.com/c/5865478, Bug 4226). (Remarque : Une modification du mappeur a été brièvement annulée en raison d'échecs WPT, puis réappliquée (crrev.com/c/5961113)).
  • Architecture : l'utilisation de l'objet de session local au thread a été réduite dans ChromeDriver pour éviter les bugs de partage d'état entre les tests et simplifier la gestion explicite des sessions (crrev.com/c/5978486, Bug : 42323555). Refactorisation des tests d'intégration C++ pour utiliser un fixture de test partagé (crrev.com/c/5971474, Bug: 42323555).
  • Nettoyage : suppression des solutions de contournement obsolètes spécifiques à l'ancien mode headless, car l'ancien code chrome-headless-shell n'est plus présent dans Chrome (crrev.com/c/5961602, Bug : 42323387).
  • Nettoyage : suppression du fichier java_tests.txt inutilisé, vestige des tests d'acceptation ChromeDriver précédemment supprimés (crrev.com/c/5970994, Bug : 357737793).
  • Tests : ajout d'un test d'intégration C++ pour vérifier que ChromeDriver ne crée pas de sessions parallèles avec le même user-data-dir ou ne fait pas fuiter d'URL entre les sessions, ce qui pourrait entraîner une instabilité (crrev.com/c/5961137, Bug : 375312517).
  • Tests : nous avons veillé à ce que les instances ChromeDriver temporaires lancées par les tests d'intégration soient arrêtées le plus rapidement possible pour libérer des ressources (crrev.com/c/5997970, bug 375974725).

ChromeDriver 131

Nouvelles fonctionnalités

  • BiDi : la dépendance du mappeur chromium-bidi est passée à la version 0.8.0, intégrant les dernières mises à jour du protocole et les corrections de bugs (crrev.com/c/5899240, crrev.com/c/5865478, Bug 4226).
  • Accès au DOM : ajout de la prise en charge des racines fantômes fermées dans la commande GetElementShadowRoot. Auparavant, cette commande renvoyait une erreur NoSuchShadowRoot lors de la tentative d'accès à une racine fantôme fermée (crrev.com/c/5923865, Bug : 372834222).
  • Accès au DOM : implémentation de la prise en charge des identifiants de fenêtres et de cadres, permettant de renvoyer des références à des fenêtres ou des cadres (y compris les iFrames OOP) à partir de scripts exécutés pour une déréférenciation ultérieure (crrev.com/c/5890437, crrev.com/c/5923555, Bug: 366272556, Bug: 40229283).
  • WebAuthn : l'API d'automatisation WebAuthn a été étendue pour inclure les propriétés userName et userDisplayName (crrev.com/c/5905423, Bug : 367915823).

Correction de bugs

Modifications et refactorisations internes

  • Sécurité de la mémoire (spanification) : l'utilisation de pointeurs non sécurisés a été remplacée par base::span dans net::HttpUtil (crrev.com/c/5854420), et base::File::WriteAtCurrentPos() a été migré vers son équivalent basé sur les spans (crrev.com/c/5818972). Réécriture des valeurs du pointeur de carte (par exemple, dans std::map, std::unordered_map) en raw_ptr (crrev.com/c/5867189, Bug : 329428315).
  • Normes C++ : les macros d'attribut Abseil (ABSL_ATTRIBUTE_*) ont été remplacées par des macros base/ standards (crrev.com/c/5852373). Évité les copies involontaires en remplaçant les chaînes/vecteurs de transmission par valeur par std::string_view ou des références const le cas échéant, et supprimé les qualificateurs const superflus des arguments std::string_view (crrev.com/c/5914620, crrev.com/c/5906184, Bug : 369952985).
  • Infrastructure : Fuchsia est configuré pour utiliser ChromeDriver afin de contrôler web-engine (crrev.com/c/5867896, Bug : 40935291).
  • Tests : migration d'un test WebAuthn de cadres clôturés de l'ancien lanceur de shell de contenu vers Chrome sans interface graphique avec ChromeDriver, car l'ancien lanceur ne prendra bientôt plus en charge l'API WebAuthn testdriver (crrev.com/c/5920770, Bug: 372169469).

ChromeDriver 130

Nouvelles fonctionnalités

  • BiDi : la dépendance BiDi Mapper a été mise à jour pour récupérer les dernières mises à jour du protocole et les corrections de bugs en amont chromium-bidi (crrev.com/c/5850570, relanding crrev.com/c/5837065 après l'annulation crrev.com/c/5840080 ; crrev.com/c/5717956, Bug 4226).
  • BiDi : ChromeDriver a été mis à jour pour fournir unhandledPromptBehavior directement au Mapper via la commande session.new lors de l'initialisation d'une session BiDi. Cela termine la migration depuis MapperOptions (crrev.com/c/5682934, crrev.com/c/5766077, Bug: 42323841, Bug: 356371297).
  • Tests : ajout de la prise en charge de l'argument --chromedriver au script bisect-builds.py pour les builds de bureau, ce qui permet au script de télécharger et d'utiliser automatiquement la version correcte de ChromeDriver lors des bissections pour les tests dépendant de WebDriver/ChromeDriver (crrev.com/c/5861048, Bug : 352344089).

Modifications et refactorisations internes

  • Normes C++ : résolution des problèmes liés à la "règle des cinq" dans différentes classes. Étant donné que le plug-in de style Chrome insiste sur les destructeurs hors ligne sans appliquer également les constructeurs de déplacement hors ligne, le compilateur supprimait implicitement les opérateurs de déplacement et revenait silencieusement aux copies. Ces déclarations manquantes ont été ajoutées (crrev.com/c/5846757, Bug : 364788123).
  • Tests : le récapitulatif des résultats des tests wptrunner a été nettoyé en remplaçant la chaîne chrome codée en dur par le produit réellement utilisé et en masquant l'artefact command détaillé dans le récapitulatif (crrev.com/c/5825633, Bug : 41494889).
  • Tests : correction d'un grand nombre d'échecs de tests dans les tests d'intégration ChromeDriver sur macOS 15 (Mac15) en doublant les délais d'attente spécifiques, car les tests sur cet OS nécessitaient beaucoup plus de temps que sur Mac14. Quatre tests de capteurs virtuels ont également été ajoutés à la liste des tests à ignorer en raison de leur instabilité (crrev.com/c/5817455, Bug : 354939744).
  • Tests : désactivation des tests ChromeDriverSiteIsolation.testClickNavigateLocalToLocal instables sur Mac (crrev.com/c/5806894, bug 361521805) et des tests ChromeDriverTest.testClickElement*ObscuredByScrollBar instables sur Windows 11 (crrev.com/c/5804083, bug 360058651).
  • Tests : les tests d'acceptation ChromeDriver (qui téléchargeaient d'anciennes versions de Chrome pour les tester par rapport au ChromeDriver actuel) ont été supprimés en raison de plusieurs problèmes d'infrastructure. Ils pourront être réajoutés ultérieurement dans l'intégration continue avec autoroll (crrev.com/c/5812142, Bug : 357737793).

ChromeDriver 129

Nouvelles fonctionnalités

  • BiDi : l'assistant d'initialisation de session ChromeDriver a été mis à jour pour envoyer une commande session.new au mappeur BiDi, ce qui permet au mappeur de gérer directement les capacités. Il s'agit de la première étape pour supprimer MapperOptions (crrev.com/c/5741432, Bug: 356371297). (Remarque : Une modification associée crrev.com/c/5754093 fournissant le unhandledPromptBehavior traité a été annulée crrev.com/c/5755744 en raison d'une baisse de la couverture des tests).
  • Pression de calcul : ajout de nouvelles commandes d'extension pour la gestion des sources de pression virtuelles, implémentation de la section "Automation" (Automatisation) de la spécification de pression de calcul. Ces commandes sont analysées et transmises à la couche CDP (crrev.com/c/5666583, Bug : 347031400).
  • Extensions MV2 : mise à jour des tests exerçant le comportement MV2 pour utiliser ScopedTestMV2Enabler dans le cadre de l'essai sur le terrain de l'obsolescence du Manifest V2 d'extension (crrev.com/c/5685054, Bug: 339061151).

Correction de bugs

  • Sérialisation classique : suivi des objets vus lors de la sérialisation d'un Set dans les résultats d'exécution du script WebDriver Classic, ce qui empêche les boucles infinies et tolère les remplacements de Array.prototype.includes (crrev.com/c/5765833, Bug: 357472850). (Remarque : Cette modification a été annulée par la suite crrev.com/c/5773175 en raison d'une régression WPT).

Modifications et refactorisations internes

ChromeDriver 128

Nouvelles fonctionnalités

  • Capacités : autorise l'utilisation d'un dictionnaire pour la capacité unhandledPromptBehavior, conformément aux structures de capacité standards, bien qu'il ne soit pas encore entièrement respecté par le Mapper (crrev.com/c/5692204, crrev.com/c/5682934, Bug: 42323841).
  • Démarrage : ajout de l'argument de ligne de commande --ignore-explicit-port à ChromeDriver. Cette solution de contournement temporaire force ChromeDriver à ignorer tout port fourni explicitement et à trouver et se lier à un port libre. Elle permet de résoudre les conflits de ports TCP lors de l'exécution des tests de plate-forme Web (elle sera supprimée après la version M132) (crrev.com/c/5724574, crrev.com/c/5703976, Bug: 42323836).

Correction de bugs

  • Capteurs : correction de la commande ExecuteUpdateVirtualSensor pour utiliser SendCommand() au lieu de SendCommandAndGetResult(), car la commande CDP setSensorOverrideReadings ne renvoie pas de valeur (crrev.com/c/5703589).
  • FedCM : correction d'une condition de concurrence dans les tests ChromeDriver FedCM en n'affirmant plus que NoSuchDialog est renvoyé lorsqu'une boîte de dialogue est réellement attendue, ce qui évite les échecs si la boîte de dialogue apparaît trop rapidement (crrev.com/c/5713515, Bug : 346530330).
  • Tests : réactivation des tests de l'authentificateur virtuel WebAuthn sur Mac après la résolution du problème sous-jacent (crbug.com/40233722) (crrev.com/c/5635806, Bug : 329130177).
  • Messages d'erreur : correction d'une faute de frappe dans le message d'erreur de la commande execute/async (crrev.com/c/5697913).

Modifications et refactorisations internes

ChromeDriver 127

Correction de bugs

  • Stabilité : correction d'un plantage de ChromeDriver qui se produisait lorsqu'une commande target.detachFromTarget (ou un événement target.detachedFromTarget) était reçue alors que le client DevTools traitait activement d'autres commandes, ce qui empêchait la libération prématurée des objets WebView et DevToolsClient (crrev.com/c/5527584, Bug : 339773537).
  • Stabilité : correction d'un problème qui pouvait entraîner le renvoi incorrect d'une "erreur inconnue" par la commande Switch To Window si une vue Web était détachée lors de l'exécution de la commande. L'erreur interne "vue Web introuvable" est désormais ignorée, ce qui entraîne une réponse standard "aucune fenêtre de ce type" si la fenêtre cible est effectivement fermée (crrev.com/c/5583730, Bug : 338616700).
  • Stabilité : ChromeDriver tolère le détachement de la cible lors de la mise à jour de la liste WebView interne. Si une cible se détache pendant la mise à jour, ChromeDriver effectuera désormais une nouvelle tentative au lieu de renvoyer une erreur non standard, ce qui réduira l'instabilité dans les environnements où les fenêtres sont rapidement créées et détruites (crrev.com/c/5565103, Bug: 338616700, Bug: 4771).
  • Navigation : ajout d'une logique à ChromeDriver pour attendre une navigation détectée par l'extrémité distante lors de la recherche d'éléments. Cela empêche ChromeDriver de renvoyer une erreur non standard ou de planter avec un DCHECK lorsqu'une navigation coïncide avec une opération de recherche d'élément (crrev.com/c/5563113, rétablissement de crrev.com/c/5563420, relanding crrev.com/c/5562089, Bug: 4771).
  • BiDi : correction d'une condition de course entre ChromeDriver et BiDiMapper lors de la création de session. ChromeDriver attend désormais que la commande browsingContext.getTree renvoie une liste non vide avant de conclure la commande NewSession, ce qui garantit que le nouvel onglet par défaut est correctement enregistré (crrev.com/c/5575497, Bug: 341048786, Bug: 1503101).
  • BiDi : correction d'un problème qui faisait que le focus restait dans l'onglet en arrière-plan BiDiMapper après la création d'une session au lieu de l'onglet utilisateur actif en accordant explicitement le focus au premier onglet utilisateur (crrev.com/c/5594070, Bug: 341048786, Bug: 1503101).
  • BiDi : ChromeDriver n'essaie plus d'associer une cible lors du traitement des commandes BiDi (comme browsingContext.close) pour éviter que les commandes CDP ne se bloquent indéfiniment si une invite utilisateur est ouverte. Le traitement est entièrement délégué à la couche BiDi déjà connectée (crrev.com/c/5541915, rétablissement de crrev.com/c/5539818, relancement de crrev.com/c/5522393, bug 4758).
  • FedCM : correction de l'échec du test WPT fedcm-loginhint.https.html où une boîte de dialogue était incorrectement marquée comme fermée. L'état n'est désormais mis à jour que si l'opération selectAccount réussit réellement (crrev.com/c/5398379, Bug : 331237776).
  • Tests : correction d'un échec DCHECK lors de l'analyse JSON lorsqu'un caractère atteignait exactement la limite kExtendedASCIIStart (crrev.com/c/5565276, Bug: 40284755).
  • Tests : correction du test WPT scrollend-event-fires-to-iframe-window.html en utilisant l'élément iframe comme origine de défilement et en arrondissant les entrées de déplacement du pointeur à des nombres entiers, ce qui empêche les erreurs ChromeDriver avec des positions tactiles fractionnaires (crrev.com/c/5570150, Bug : 340956654).
  • Tests : amélioration des diagnostics dans les tests d'intégration ChromeDriver en affichant les chemins tentés lorsque run_py_tests.py ne parvient pas à localiser le binaire du navigateur (crrev.com/c/5604204, Bug 4781).

Modifications et refactorisations internes

  • BiDi : la dépendance du mappeur BiDi a été mise à jour pour tenir compte des dernières mises à jour du protocole et des corrections de bugs (crrev.com/c/5614670, crrev.com/c/5593796, crrev.com/c/5537892, crrev.com/c/5471839, Bug : 4226).
  • Remplacement des utilisations de NOTREACHED() par NOTREACHED_IN_MIGRATION() dans le répertoire chrome/ en vue de rendre NOTREACHED() strictement [[noreturn]] (crrev.com/c/5539004, Bug: 40580068).
  • Activation de la génération de THIRD_PARTY_NOTICES.txt pour ChromeDriver à l'aide de l'outil licenses.py afin de respecter les exigences de distribution (crrev.com/c/5596355, Bug: 4777).
  • Suppression de la compatibilité run_wpt_tests.py pour content_shell, car la couverture WPT de Chromium passe entièrement à headless_shell + ChromeDriver (crrev.com/c/5589930). Les commutateurs wptrunner ont été réorganisés pour être spécifiques à l'intégrateur afin de tenir compte de ce changement sans impact fonctionnel (crrev.com/c/5589793, Bug: 338412391).
  • La logique de détection et de gestion des boîtes de dialogue JavaScript a été consolidée en la déplaçant de JavaScriptDialogManager directement vers DevToolsClientImpl. La classe de gestion distincte a été supprimée pour simplifier les tests et le raisonnement (crrev.com/c/5545630, Bug: 4757).
  • Désactivation de PureBidiTest.testBrowsingContextTreeIsNotEmpty sur Mac en raison de son instabilité (crrev.com/c/5588665, Bug : 343891977).
  • Mise à jour des attentes WPT BiDi pour tenir compte des récentes mises à jour du Mapper (crrev.com/c/5615110, Bug: 4226, Bug: 324436866).
  • Ajout de tests unitaires pour WebView::SendBidiCommand et BidiTracker afin d'augmenter la couverture de code (crrev.com/c/5588400, Bug: 341048786, Bug: 1503101).

ChromeDriver 126

Nouvelles fonctionnalités

  • BiDi : ChromeDriver a été mis à jour pour fournir le commutateur --disable-background-timer-throttling lors du lancement du navigateur pour une session WebDriver BiDi, ce qui empêche la limitation du débit des onglets en arrière-plan (crrev.com/c/5515013, Bug 4762).
  • BiDi : ajout de la compatibilité avec le mappeur BiDi pour envoyer des messages de débogage (sendDebugMessage) lorsque la journalisation détaillée est requise. ChromeDriver marque ces événements comme bidi messages pour l'analyse, bien que BidiTracker les ignore actuellement (crrev.com/c/5465782, Bug: 4753).
  • Classique : implémentation de l'acceptation automatique de toutes les boîtes de dialogue beforeunload (alertes), conformément à la norme WebDriver qui stipule qu'elles ne doivent jamais être affichées dans une session classique (crrev.com/c/5517510, Bug: 4757).

Correction de bugs

  • Classique : suppression de la limite de tentatives maximales redondante dans la logique de récupération des éléments. La récupération n'est désormais limitée que par le délai avant expiration implicite, ce qui évite les scénarios où l'opération peut échouer prématurément et renvoyer à tort une erreur NoSuchExecutionContext non standard (crrev.com/c/5478668, Bug: 4379).
  • Classic : correction d'une régression qui entraînait la réponse javascript error de ChromeDriver au lieu d'une erreur invalid selector lorsqu'une requête de récupération utilisait une stratégie de localisation non valide (crrev.com/c/5490662, Bug 4743).
  • Classic : les commandes de fenêtre sur Android (maximiser, réduire, plein écran) renvoient l'erreur unsupported operation conforme à la norme au lieu de continuer, car ces actions ne sont pas prises en charge par le navigateur Android (crrev.com/c/5490224, Bug: 4689).
  • Classic : ChromeDriver a été corrigé pour ne plus jamais renvoyer le code d'erreur interne kChromeNotReachable. Il renvoie désormais correctement l'erreur standard kSessionNotCreated lorsque le client HTTP ne peut pas se connecter au navigateur (crrev.com/c/5476390, Bug : 4379).
  • Classic : Correction de ChromeDriver pour qu'il ne renvoie jamais l'erreur non standard kNoSuchExecutionContext lors de l'exécution des commandes de fenêtre (crrev.com/c/5483606, Bug 4379).
  • Version classique : suppression du code d'erreur kForbidden inutilisé et non compatible de la liste des codes d'erreur compatibles (crrev.com/c/5476927, bug 4379).
  • BiDi : mise à jour de ChromeDriver pour inviter l'utilisateur à confirmer avant de fermer l'onglet Mapper dédié, conformément aux modifications apportées à chromium-bidi en amont (crrev.com/c/5508600, Bug: 4761).

Modifications et refactorisations internes

ChromeDriver 125

Nouvelles fonctionnalités

  • Position de l'appareil : ajout de commandes ChromeDriver pour la gestion de la position de l'appareil, compatible avec la section "Automation" (Automatisation) de la spécification de la position de l'appareil. Cela permet de remplacer la posture de l'appareil définie par le matériel et de supprimer le remplacement à l'aide des commandes d'extension (crrev.com/c/5437993, Bug: 330376761).

Correction de bugs

  • BiDi : le stockage intermédiaire de la commande BiDi entrante id est passé de Double à base::Value. Cela permet de s'assurer que id est renvoyé précisément dans la réponse, sans point décimal ni partie fractionnaire inattendus après la sérialisation JSON (crrev.com/c/5444225, Bug 4676).
  • FedCM : rétablissement de la modification pour activer CORS dans le point de terminaison d'assertion d'identité une fois les IdP prêts (crrev.com/c/5440132, rétablissement de crrev.com/c/5381316, rétablissement de crrev.com/c/5370086, bug 40284123).
  • FedCM : correction d'un bug qui marquait incorrectement une boîte de dialogue comme fermée. Pour résoudre ce problème, nous avons fait en sorte qu'elle ne soit marquée comme fermée que si la commande selectAccount réussit. Cela résout les échecs de test lorsque selectAccount est appelé sans sélecteur de compte attendu (crrev.com/c/5398379, Bug: 331237776). Évité d'appeler fedcm_get_and_select_first_account lorsqu'un sélecteur de compte n'est pas attendu pour éviter de déclencher ce bug (crrev.com/c/5398800).
  • Tests : correction d'un échec du test WPT popover-light-dismiss.html en combinant des séquences d'actions et en utilisant le document du frame principal comme origine pour l'action pointerUp, ce qui empêche ChromeDriver d'envoyer incorrectement des événements pointerUp simultanés dans les frames (crrev.com/c/5402096, Bug 325981758).
  • Tests : correction de wptrunner pour transférer correctement la sortie stderr (y compris les journaux du navigateur écrits lors de l'utilisation de --enable-chrome-logs) à l'artefact stderr au lieu de crash_log, et déplacement des erreurs de harnais (qui contiennent la trace de la pile du navigateur) vers crash_log (crrev.com/c/5437023, Bug : 41494889).
  • Tests : correction de wptrunner pour acheminer les journaux du navigateur vers l'artefact de test approprié en regroupant les résultats par processus ChromeDriver, ce qui empêche les journaux entrelacés et orphelins lors de l'exécution de tests en parallèle (crrev.com/c/5320681, Bug : 41494889).

Modifications et refactorisations internes

  • BiDi : la dépendance du mappeur BiDi a été mise à jour, intégrant les dernières améliorations du protocole et les corrections de bugs (crrev.com/c/5433300, crrev.com/c/5393442, Bug: 4226). (Remarque : Une précédente augmentation crrev.com/c/5374366 a été annulée crrev.com/c/5374839, puis réintégrée avec des tests instables désactivés et des licences mises à jour crrev.com/c/5374914).
  • Diagnostics : les exceptions ChromeDriver sont désormais liées à StackTrace de Chrome. La trace de la pile du navigateur s'affiche dans le message d'erreur lorsqu'une session est supprimée en raison d'un plantage de page/d'onglet (par exemple, des pointeurs suspendus sur Mac), ce qui améliore considérablement la capacité de débogage (crrev.com/c/5374371, Bug: 330009945).
  • Tests : le test d'intégration testTakeLargeElementViewportScreenshot instable a été temporairement désactivé sur Mac (plus précisément mac-arm64) (crrev.com/c/5447515, bug 333826980).
  • Tests : les arguments de lancement de ChromeDriver dans les environnements de test (CEL) ont été mis à jour pour correspondre à la syntaxe de Selenium 4+ (crrev.com/c/5448812, bug 308885357).
  • Tests : extrait la ligne de commande chrome exacte utilisée pour exécuter chaque test WPT à partir du journal chromedriver dans un artefact ResultDB nommé command. Cela facilite le débogage manuel avec run_blink_wptserve.py (crrev.com/c/5441189, Bug: 41494889).
  • Dépendances : Closure a été supprimé de la liste des dépendances selenium-atoms, et donc des avis tiers de ChromeDriver (crrev.com/c/5424804, Bug: 4226).
  • Dépendances : suppression des dépendances inutilisées sur dynamic_annotations dans le dépôt de base (crrev.com/c/3398908, Bug : 1282422).
  • Mise en forme : application de la nouvelle configuration clang-format aux en-têtes Windows problématiques (crrev.com/c/5367127, Bug : 329138753).

ChromeDriver 124

Nouvelles fonctionnalités

  • BiDi : ajout d'une étape de compilation pour réduire le script BiDiMapper avant de l'intégrer à ChromeDriver, car le mappeur de source est désormais téléchargé non réduit à partir de CIPD (crrev.com/c/5310075, Bug : 4226).
  • WebAuthn : ajout de la commande SetCredentialProperties, qui permet aux clients de mettre à jour les indicateurs de sauvegarde pour une identifiant WebAuthn (crrev.com/c/5296389, Bug : 40945430).
  • WebAuthn : les indicateurs de sauvegarde WebAuthn sont exposés via WebDriver en ajoutant defaultBackupEligibility et defaultBackupState à la commande "Add Virtual Authenticator" (Ajouter un authentificateur virtuel), et backupEligibility et backupState à la commande "Add Credential" (Ajouter une identifiant) (crrev.com/c/5297117, Bug: 40945430).
  • Tests : ajout de la prise en charge de l'argument de ligne de commande --failfast aux tests d'intégration Python de ChromeDriver, ce qui permet d'arrêter l'exécution des tests à la première erreur pour faciliter le débogage (crrev.com/c/5374546).
  • Tests : ajout de la compatibilité avec content-shell pour la commande WebDriver SetRPHRegistrationMode via les API testdriver-vendor.js (crrev.com/c/5205730, Bug : 1359103).

Correction de bugs

  • Stabilité : le contrôle de l'expiration du délai d'attente a été déplacé dans le corps de la boucle d'interrogation et d'attente dans ChromeImpl::SetWindowBounds. Correction d'un problème qui pouvait entraîner l'expiration du délai avant la première itération de boucle en cas de charge élevée (crrev.com/c/5366899, Bug: 4642).
  • Performances : temps d'attente réduit dans ChromeImpl::SetWindowBounds en n'appliquant un temps d'attente avec backoff exponentiel que si les limites de la fenêtre n'ont pas encore atteint l'état souhaité, ce qui réduit la latence de configuration WPT (crrev.com/c/5366457, Bug: 4642).
  • Démarrage : ChromeDriver mis à jour pour utiliser --user-data-dir au lieu de --data-path lors de la spécification du répertoire de données pour content_shell, conformément à la façon dont il lit le port DevTools actif (crrev.com/c/5226609, Bug : 1295373).

Modifications et refactorisations internes

  • BiDi : la dépendance du mappeur BiDi a été mise à jour pour inclure les derniers correctifs et fonctionnalités du protocole (crrev.com/c/5374366, crrev.com/c/5349491, crrev.com/c/5317650, bug 4226). (Remarque : Une mise à jour a été brièvement annulée, puis réappliquée en raison d'échecs de tests crrev.com/c/5374839, crrev.com/c/5368680, crrev.com/c/5319423).
  • Remplacement des utilisations de absl::optional par std::optional dans l'ensemble du code suite à la transition de absl::optional vers un alias de type (crrev.com/c/5296147, Bug: 1500249).
  • Couverture étendue de MiraclePtr (raw_ptr) à d'autres conteneurs standards, y compris std::list, std::unordered_set, base::flat_set, std::stack et std::queue (crrev.com/c/5306923, Bug: 325302189).
  • WriteBigEndian() a été converti pour utiliser les conversions d'octets base::numerics ou BigEndianWriter (qui accepte désormais base::span), ce qui améliore la sécurité lors de l'écriture d'octets big-endian (crrev.com/c/5202348, Bug: 1490484).
  • Passage à ChromeDriver pour exécuter les tests de plate-forme Web (WPT) avec content_shell (à l'exception des tests virtuels et des reftests en attente de correction de bugs en amont) (crrev.com/c/5347371, Bug 40214293).
  • Conversion de tous les tests Web Generic Sensor existants pour utiliser test_driver.js et des capteurs virtuels au lieu de mocks JS/Mojo, conformément à la nouvelle section Automation de la spécification Generic Sensor (crrev.com/c/4770867, Bug: 1278377, Bug: 1471996).
  • Amélioration de la génération de licences en ajoutant append_notices.py pour générer des crédits pour les dépendances BiDiMapper et en mettant à jour l'invocation licenses.py pour s'appuyer strictement sur le fichier README selenium-atoms pour les avis tiers (crrev.com/c/5350601, crrev.com/c/5339957, Bug: 4729, Bug: 4735).

ChromeDriver 123

Nouvelles fonctionnalités

  • FedCM : affichage de boîtes de dialogue modales pour les flux de boutons de compte unique, y compris l'ajout de la prise en charge des vues modales dans l'interface d'automatisation (crrev.com/c/5231438, bug 1518356).
  • FedCM : implémentation de la compatibilité ChromeDriver pour ouvrir des liens dans les boîtes de dialogue FedCM, en les traitant comme des boutons pour simplifier l'automatisation (crrev.com/c/5225543, Bug : 1513520).
  • Capteurs : modification des commandes de capteur virtuel WebDriver pour lire les angles d'Euler (alpha-bêta-gamma) au lieu des quaternions, conformément aux récentes mises à jour des spécifications des capteurs d'orientation. Les couches internes du CDP et des services utilisent toujours des quaternions via une étape de conversion (crrev.com/c/5229177, Bug : 1506995, Bug : 1520912, Bug : 1520919).

Correction de bugs

  • Classic : correction d'un problème qui entraînait une erreur StaleElementReference lorsqu'un nœud d'un autre frame était renvoyé via un script. Désormais, une erreur JavaScriptError est renvoyée, conformément à la norme WebDriver (crrev.com/c/5222746, Bug 4668).
  • Tests : correction d'un test d'événements de défilement hors limites qui échouait sur Chrome/ChromeDriver, car le déplacement tactile s'étendait au-delà des limites de la fenêtre. Le déplacement est désormais correctement limité (crrev.com/c/5297676, Bug: 40832230).
  • Tests : correction des tests MIDI open-close.https.html pour éviter de créer des promesses inutiles, ce qui permet d'éviter les rejets de promesses non gérés qui entraînaient l'échec du test ChromeDriver (crrev.com/c/5239869, Bug : 1499775).
  • Tests : correction de l'ensemble d'autorisations dans les tests wpt_internal/system-wake-lock/idlharness*test_driver.set_permission(...) transmettait incorrectement false au lieu de null ou d'un WindowProxy, ce qui induisait ChromeDriver en erreur (crrev.com/c/5271087, Bug: 40287920).

Modifications et refactorisations internes

  • BiDi : la dépendance BiDi Mapper a été mise à jour pour récupérer les derniers correctifs et fonctionnalités (crrev.com/c/5205452, crrev.com/c/5255321, crrev.com/c/5238148, crrev.com/c/5237125, Bug 4226). (Remarque : Une augmentation a été brièvement annulée, puis réappliquée en raison d'échecs de compilation crrev.com/c/5238855).
  • Amélioration de l'intégrité du code ChromeDriver en éliminant les casts statiques non sécurisés d'une classe de base vers une classe dérivée dans ChromeImpl et DevToolsClientImpl, ce qui empêche un comportement potentiellement indéfini (crrev.com/c/5277062, crrev.com/c/5272562, Bug: 4702).
  • Élimination des casts non sécurisés dans WebViewImpl (crrev.com/c/5272230, Bug: 4702).
  • Suppression des formes obsolètes de base::Base64Encode(), migration vers la variante de retour std::string plus récente au lieu d'utiliser des paramètres de sortie (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214).
  • Mise à jour de toutes les directives #include pour base/... afin d'utiliser "" au lieu de <> pour plus de cohérence (crrev.com/c/5237376, Bug 1500249).
  • Migration de tous les fichiers DIR_METADATA dans chrome/test/ vers Buganizer (crrev.com/c/5284119, Bug : 1518875).
  • Empêche wptrunner de créer un fichier - local lors du passage de -vvv en supprimant le commutateur chromedriver --log-path=- inutile, car stderr est déjà redirigé vers stdout (crrev.com/c/5282721).
  • Amélioration de wptrunner pour résumer les résultats des tests en cas de régression, en incluant explicitement les résultats des sous-tests et les traces de pile ChromeDriver directement dans le résumé (crrev.com/c/5238662, Bug: 1521922).
  • Simplification du débogage des tests d'intégration ChromeDriver en introduisant le paramètre --remote-chromedriver-port dans run_py_tests.py, permettant la connexion à une instance existante s'exécutant sous un débogueur (crrev.com/c/5237254, Bug: 4693).
  • Évité les appels base::HexEncode() et RandBytes() à deux arguments pour permettre au compilateur de déduire la taille correcte, ce qui simplifie le code (crrev.com/c/5241357).

ChromeDriver 122

Correction de bugs

  • BiDi : la sérialisation des nœuds profonds a été mise à jour pour inclure loaderId, ce qui permet à ChromeDriver et au mappeur BiDi de référencer et de déréférencer correctement les nœuds sans effectuer trop d'allers-retours (crrev.com/c/5116240, Bug 1420968).
  • Fonctionnalités : ChromeDriver mis à jour pour transmettre la fonctionnalité acceptInsecureCerts au mappeur BiDi immédiatement au démarrage, ce qui évite les conditions de course où la fonctionnalité pourrait être appliquée trop tard (crrev.com/c/5125711, Bug 4643).
  • Classique : l'architecture de la génération de références d'éléments a été repensée pour utiliser un format <frame_id>.<loader_id>.<backend_node_id>. Cela permet à ChromeDriver de distinguer définitivement les références d'éléments valides, inconnues et obsolètes lors des navigations dans les frames et des mises à jour du DOM (crrev.com/c/5094519, Bug 4379).
  • Classic : correction d'un problème qui pouvait entraîner l'échec de la commande window/handles avec une erreur "no such window" si une cible nouvellement créée se fermait (par exemple, dans une condition de course) avant que ChromeDriver puisse s'y attacher (crrev.com/c/5147409, Bug: 1506833).
  • FedCM : ajout d'un écouteur d'événements interne pour envoyer une notification lorsqu'une boîte de dialogue FedCM est fermée, ce qui empêche la commande dialogtype de renvoyer des données obsolètes si la boîte de dialogue a été fermée en externe (par exemple, via AbortController.abort) (crrev.com/c/5067504, bug 1506292).
  • FedCM : le préfixe du fournisseur a été supprimé de la commande ClickDialogButton, car il a été approuvé dans la spécification FedCM (crrev.com/c/5092527, bug 1499341).

Modifications et refactorisations internes

  • BiDi : la dépendance BiDi Mapper a été mise à jour vers la dernière version (crrev.com/c/5205452, Bug: 4226).
  • Réduction du trafic ChromeDriver et Chrome DevTools Protocol (CDP) en supprimant les appels Page.enable redondants envoyés à partir de chaque DevToolsEventListener, car DevToolsClientImpl gère déjà cela par cible (crrev.com/c/5088789, Bug: 4600).
  • Tous les compilateurs Wptrunner pour content_shell sont passés à l'état expérimental, car l'exécution de tests en mode protocole n'est actuellement pas entièrement prise en charge pendant l'intégration de ChromeDriver (crrev.com/c/5225148, Bug: 1474702).
  • Ignorer les tests qui nécessitent window.test_driver_internal.get_computed_role sur content_shell, car il n'est pas encore implémenté, ce qui empêche les échecs TypeError (crrev.com/c/5189678, Bug: 1517744).
  • Refactorisation réintégrée pour utiliser des indicateurs IS_OZONE_{X11, WAYLAND} indépendants de la plate-forme au lieu de OZONE_PLATFORM_* (crrev.com/c/5086329, Bug: 1500494).
  • Mise à jour de la dépendance selenium-atoms vers la dernière révision (crrev.com/c/5110808, Bug : 4662).
  • Correction de la logique dans les tests SnapEvents lorsqu'ils sont exécutés sur le binaire Chrome complet en arrondissant les entrées de déplacement du pointeur, en appliquant le paramètre origin pour les défilements et en utilisant des assertions d'approximation (assert_approx_equals) pour gérer les écarts de défilement/décalage fractionnaires (crrev.com/c/5097343).
  • Ajout de l'assistant StringPrintfNonConstexpr() pour le distinguer de StringPrintf() lorsque les chaînes de format ne sont pas des constantes de compilation (crrev.com/c/4950568, Bug : 1371963).
  • L'échappement de la macro Rust chromium::import! utilise désormais une fonction injective pour éviter les collisions dans les noms de cibles GN générés (crrev.com/c/5132119, Bug: 1512174).
  • L'implémentation ScopedTempDirWithRetry a été nettoyée en ajoutant un constructeur et des retours anticipés dans le destructeur (crrev.com/c/5113843).

ChromeDriver 121

Nouvelles fonctionnalités

  • Tests : ajout de la compatibilité pour l'exécution de tests ChromeDriver intégrés (chromedriver_py_test) sur chrome-headless-shell en plus du navigateur Chrome standard sur les robots de compilation. Cela inclut la possibilité de découvrir le binaire du navigateur en fonction du paramètre --browser-name et d'exécuter conditionnellement des ensembles de tests spécifiques (crrev.com/c/4995189, crrev.com/c/4989442, Bug: 4358).

Correction de bugs

  • Stabilité : la valeur par défaut de KeyboardLayoutEngine a été initialisée sur StubKeyboardLayoutEngine pour éviter les plantages de ChromeDriver causés par un accès DCHECK dans KeyboardLayoutEngineManager::SetKeyboardLayoutEngine (crrev.com/c/5017859, Bug: 4625).
  • Stabilité : correction d'un problème de flakiness où ChromeDriver pouvait planter si le thread de session demandait à fermer une connexion après que le client avait déjà demandé à fermer la même connexion (crrev.com/c/4994636, Bug: 4606).
  • Gestion des ressources : correction des fuites de ressources dans les tests d'intégration ChromeDriver (RemoteBrowserTest) en s'assurant que le processus du navigateur est arrêté même si une exception est générée par une commande ChromeDriver (crrev.com/c/5009554, Bug 4614).
  • Gestion des ressources : logique implémentée dans les tests d'intégration ChromeDriver pour détecter et mettre fin à tous les processus de navigateur abandonnés par le processus ChromeDriver (crrev.com/c/5014093, Bug: 4617).
  • Démarrage : correction d'un problème où chrome-headless-shell renvoyait une liste de cibles vide, empêchant la création de session, en ajoutant l'argument data:, à la ligne de commande du navigateur lorsque le nom du navigateur est chrome-headless-shell (crrev.com/c/5010392, crrev.com/c/5009535, Bug: 4615, Bug: 4358).
  • FedCM : ajout d'un nouvel événement pour notifier la fermeture d'une boîte de dialogue FedCM, afin de s'assurer que dialogtype et d'autres commandes ne renvoient pas de données obsolètes si la boîte de dialogue a été fermée en externe (par exemple, via AbortController.abort) (crrev.com/c/5067504, Bug : 1506292).
  • Tests : correction et réactivation de tous les tests d'intégration ChromeDriver qui avaient été précédemment désactivés pour chrome-headless-shell sur Windows (crrev.com/c/5027594, Bug 4358).
  • Tests : les assertions trop strictes ont été assouplies dans testElementRegionTest pour s'aligner sur la norme WebDriver, ce qui a permis de résoudre les problèmes de fiabilité causés par les particularités de rendu du navigateur (crrev.com/c/5017865, Bug: 4526).

Modifications et refactorisations internes

  • BiDi : mise à jour de la dépendance BiDi Mapper (crrev.com/c/4994305, bug 4226).
  • L'utilisation de IS_OZONE_{X11, WAYLAND} a été annulée au profit de OZONE_PLATFORM_* en raison d'un bug (crrev.com/c/5086571, annulation de crrev.com/c/5083096, Bug : 1500494).
  • Migration du code dans commands_unittest.cc pour utiliser base::BindLambdaForTesting au lieu de base::Passed, qui est obsolète (crrev.com/c/5078589, Bug : 1326449).
  • Refactorisation de session.new pour extraire la gestion des capacités de code réutilisable (par exemple, testName, binary, browserName) dans une méthode dédiée et s'assurer que la commande respecte les capacités de la même manière que la commande classique (crrev.com/c/5004665, crrev.com/c/5001510, Bug: 4358, Bug: 4610).
  • Suppression de l'utilisation de l'en-tête base/strings/string_piece_forward.h obsolète (crrev.com/c/5008994, Bug: 691162).
  • Préparation de la transition de net::IOBuffer vers une classe non propriétaire en utilisant net::IOBufferWithSize pour les cas propriétaires (crrev.com/c/4996470, Bug: 1493389).
  • base::RandBytesAsVector() a été introduit et utilisé pour éviter de stocker des valeurs binaires dans des chaînes (crrev.com/c/5018451).
  • Désactivation de plusieurs tests d'intégration Python qui échouaient systématiquement sur Mac pour éviter qu'ils n'entraînent des builds verts en raison de l'exonération de l'analyse LUCI (crrev.com/c/4998771, Bug : 1486604, Bug : 1486520, Bug : 1486474, Bug : 1481915).
  • Renommage de webdriver_tests_suite (et wpt_tests_suite) en chrome_wpt_tests pour standardiser les conventions de nommage de la suite WPT sur les compilateurs d'essai Linux (crrev.com/c/5014293, Bug : 1474702).
  • La commande ConfirmIdpLogin du pilote Web FedCM a été réutilisée pour créer une commande ClickDialogButton plus extensible qui accepte un paramètre DialogButton (crrev.com/c/5003255, Bug: 1499341).
  • Mise à jour de la dépendance crossbench avec de nombreux correctifs et fonctionnalités, y compris une meilleure analyse du type de pilote, des stubs réseau et la compatibilité avec iOS (crrev.com/c/5009937).
  • Ajout de #include <string> manquant à chrome_finder.h pour la conformité IWYU (crrev.com/c/4994605, Bug: 957519).

ChromeDriver 120

Nouvelles fonctionnalités

  • BiDi : ajout de la compatibilité avec les commandes session.new et session.end, permettant aux utilisateurs de créer et de mettre fin à des sessions directement via les commandes BiDi (crrev.com/c/4941941, bug 4496).
  • BiDi : ajout de la prise en charge de la commande PureBiDi session.status, permettant aux utilisateurs d'établir une connexion WebSocket non liée à une session et de récupérer l'état de la session (crrev.com/c/4938596, Bug : 4496). (Rétablissement après une précédente restauration dans crrev.com/c/4922097)
  • BiDi : la dépendance du mappeur BiDi a été mise à jour et alignée sur le nouveau processus d'exécution du mappeur simplifié (crrev.com/c/4952609, bug 4226).
  • Capteurs : implémentation des commandes de capteur virtuel dans browser_protocol.pdl et la couche CDP (domaine d'émulation), ajout de la prise en charge de la section "Automation" (Automatisation) de la spécification Generic Sensor (crrev.com/c/4770864, Bug : 1278377).
  • Capteurs : ajout de commandes d'extension ChromeDriver pour la gestion des capteurs virtuels, traduction des paramètres WebDriver en nouveaux appels CDP (crrev.com/c/4770866, Bug 1278377).
  • Capteurs : ajout d'un chemin de code content_shell pour la manipulation des capteurs virtuels via testdriver.js, en contournant complètement ChromeDriver pour les tests Web (crrev.com/c/4770865, Bug 1278377).
  • Mesures d'atténuation du suivi : ajout de la compatibilité de ChromeDriver avec les mesures d'atténuation du suivi des rebonds (DIPS), ce qui permet d'automatiser la spécification nav-tracking-mitigations (crrev.com/c/4873672, bug 1474656). (Remarque : Cette modification a été temporairement annulée en raison d'échecs de tests sur Mac dans crrev.com/c/4938394.)

Correction de bugs

  • Démarrage : ajout de la découverte de Headless Shell à ChromeDriver, ce qui lui permet de rechercher le binaire chrome-headless-shell si la demande est effectuée via les capacités et qu'aucun chemin d'accès explicite n'est fourni (crrev.com/c/4987262, Bug 4358). (Rétablissement après une précédente restauration dans crrev.com/c/4984449)
  • WebSockets : implémentation d'une compatibilité partielle avec l'établissement d'une liaison de fermeture WebSocket, garantissant que ChromeDriver répond avec un frame CLOSE lorsqu'il en reçoit un de l'extrémité distante (crrev.com/c/4931500, Bug: 4499).
  • Autorisations : options.disclaim_responsibility est exposé en tant qu'indicateur de compilation pour permettre aux compilations de fournisseurs (comme Microsoft Teams) de le désactiver, ce qui empêche les invites d'autorisation macOS de bloquer l'automatisation des tests (crrev.com/c/4929495, Bug : 1223643).
  • Conformité à la norme C++ : correction du comportement indéfini (UB) détecté par UBSan lors de la conversion d'un double hors plage en int en ajoutant des vérifications de plage (crrev.com/c/4980055, Bug : 1394755).
  • FedCM : l'ancienne syntaxe d'en-tête n'est plus acceptée, ce qui garantit la conformité avec la syntaxe login-status-http standard (crrev.com/c/4957073, bug 1381501).

Modifications et refactorisations internes

  • Ajout d'un test d'intégration testReturnFrameElement pour vérifier le comportement de ChromeDriver concernant le traitement de window.frameElement comme référence obsolète (crrev.com/c/4983549, Bug: 4477).
  • Amélioration de la journalisation en veillant à ce que ChromeDriver enregistre les chemins spécifiques où il tente de localiser le binaire du navigateur (crrev.com/c/4976116, Bug: 4539).
  • Diverses fonctions base::Time ont été renommées pour être plus descriptives (par exemple, FromDoubleT() est devenu FromSecondsSinceUnixEpoch()) (crrev.com/c/4956111).
  • Refactorisation du constructeur net::StringIOBuffer et des instanciations IOBuffer pour éviter les copies de chaînes inutiles et les allocations de longueur nulle (crrev.com/c/4938384, crrev.com/c/4959174).
  • Nettoyage de la gestion des chaînes en remplaçant base::StrCat par + le cas échéant et en utilisant base::AppendHexEncodedByte() (crrev.com/c/4963465, crrev.com/c/4977165).
  • DIR_SOURCE_ROOT a été renommé DIR_SRC_TEST_DATA_ROOT dans les tests //chrome* pour plus de clarté (crrev.com/c/4916045, Bug: 1264897).
  • Désactivation des tests PureBidiTest instables sur les compilateurs Mac (crrev.com/c/4983555, Bug: 1496826).

ChromeDriver 119

Nouvelles fonctionnalités

  • BiDi : implémentation de la prise en charge de la résolution des références d'objets locaux faibles renvoyées par l'extrémité distante lors des appels de fonctions à distance (crrev.com/c/4886760, Bug 4536).
  • FedCM : ajout de la commande confirmidpsignin avec préfixe du fournisseur pour prendre en charge l'essai Origin Trial de l'API IDP Sign-In Status (crrev.com/c/4811725, Bug : 1451884).

Correction de bugs

  • Émulation mobile : correction d'un problème lié aux appareils prédéfinis sans hints client (par exemple, les configurations plus anciennes), qui étaient cassés en étant remplis avec des valeurs par défaut appropriées (crrev.com/c/4887254, Bug: 4550).
  • Classic : correction de la sérialisation des objets Map et Set. Ils sont désormais correctement sérialisés en tant que Object plutôt qu'en tant que Collection, car ils ne possèdent pas de propriété length (crrev.com/c/4881378, Bug 4031).
  • Classic : la logique de téléchargement et d'utilisation de la dernière version compatible de ChromeDriver pendant les tests a été rétablie. Le système ne revient à des versions spécifiques qu'en cas de problèmes de compatibilité (crrev.com/c/4779613, en revenant à crrev.com/c/4778973).
  • FedCM : les commandes d'automatisation du navigateur ont été normalisées en renommant Signin en Login (confirmidplogin) pour s'aligner sur les dernières discussions concernant la spécification FedCM (crrev.com/c/4901302, Bug : 1451884).
  • Tests : correction des tests FedCM qui échouaient lorsque les cookies tiers étaient désactivés en activant explicitement l'API IDP Sign-In Status lors de l'exécution des tests (crrev.com/c/4889802, Bug: 1484833).
  • Tests : le code de remplacement de l'URL non valide ~NOTFOUND a été remplacé par ^NOTFOUND dans les exécuteurs de tests pour se conformer aux prochaines modifications concernant l'application de la norme relative aux URL Chromium (crrev.com/c/4845589, Bug : 1416013).

Modifications et refactorisations internes

  • BiDi : la dépendance du mappeur BiDi a été mise à jour vers la version 0.4.27, ce qui permet de bénéficier des derniers correctifs et fonctionnalités (crrev.com/c/4862031, crrev.com/c/4890322).
  • Remplacement de plusieurs API de pointeur/longueur dans //url par std::string_view pour améliorer la sécurité et la commodité (crrev.com/c/4897456).
  • L'utilitaire generateWebDriverValue est désormais compatible avec l'option de sérialisation approfondie (serializationOptions.serialization: deep) fournie en mode natif par le protocole BiDi (crrev.com/c/4889644).
  • Ajout de tests d'intégration pour vérifier que la recherche sous une référence d'élément obsolète renvoie correctement une erreur "référence d'élément obsolète" (crrev.com/c/4886793, Bug: 4440).
  • Amélioration de la mise en forme du style de code dans call_function.js (crrev.com/c/4882511, Bug: 4031).
  • Amélioration des commentaires des utilisateurs en les informant explicitement lorsqu'ils se connectent via WebSockets que les pipes sont pris en charge et recommandés pour une meilleure fiabilité et sécurité (crrev.com/c/4882626, Bug: 3480).
  • Mise à jour de la configuration de la suite WPT pour archiver results.html pour les tests webdriver_tests_suite, ce qui permet d'obtenir une meilleure interface utilisateur pour afficher les résultats (crrev.com/c/4873223).
  • Correction de l'intégration des outils de développement à WebView en marquant les WebContents WebView et en définissant leur type d'outils de développement sur popup_page au lieu de other (crrev.com/c/4842093).
  • Le nom de la cible de compilation WPT chrome_wpt a été remplacé par chrome_wpt_tests pour plus de cohérence, et la cible webdriver_wpt_tests redondante a été supprimée (crrev.com/c/4847474, Bug: 1474702).
  • Migration de run_py_tests.py de la bibliothèque optparse obsolète vers argparse (crrev.com/c/4849411, Bug : 4557).

ChromeDriver 118

Nouvelles fonctionnalités

  • Tests d'intégration : introduction de tests d'intégration C++ pour ChromeDriver, permettant de tester des classes spécifiques par rapport au trafic CDP réel, comblant ainsi le fossé entre les tests unitaires et les tests d'intégration Python (crrev.com/c/4707855, Bug 4528).
  • Crossbench : la dépendance crossbench a été mise à jour avec de nombreuses améliorations, y compris de nouveaux scénarios de référence de consommation d'énergie, une meilleure compatibilité avec les plates-formes et les appareils, un débogage amélioré et divers correctifs (crrev.com/c/4803743).

Correction de bugs

  • Fonctionnalités : correction d'un problème qui empêchait l'affichage de debuggerAddress dans les fonctionnalités renvoyées dans les configurations par défaut. Il est désormais correctement renvoyé pour prendre en charge la communication BiDi basée sur CDP de Selenium (crrev.com/c/4789068, Bug : 4533).
  • Capacités : ChromeDriver renvoie désormais les valeurs platformName standards (par exemple, "linux", "windows", "mac") comme l'exige la spécification WebDriver (crrev.com/c/4797735, Bug 4548).

Modifications et refactorisations internes

  • Le code migré dans MockSocket préfère base::span<> aux pointeurs bruts pour une sécurité renforcée (crrev.com/c/4832086).
  • Suppression des utilisations obsolètes de base::raw_ptr et base::raw_ref au profit de leurs formes non qualifiées raw_ptr et raw_ref via le nettoyage automatisé (crrev.com/c/4773481).
  • Rétablissement temporaire d'une modification qui utilisait toujours la dernière version de ChromeDriver, car elle provoquait des plantages sur les canaux stable/bêta de Windows (crrev.com/c/4778973, rétablissement de crrev.com/c/4777430).
  • Configurations WPT (Web Platform Tests) ajustées, y compris la suppression des échecs de débogage uniquement dans pointer_touch.py et l'implémentation de la vérification de la mise au point côté navigateur pour les cadres cloisonnés (crrev.com/c/4844810, crrev.com/c/4572517).
  • Ajout de #include <vector> manquant à client_hints.h pour la conformité IWYU (crrev.com/c/4767547).
  • Migration des types de base spécifiques à Apple (ScopedTypeRef, ScopedCFTypeRef, scoped_nsautorelease_pool) dans l'espace de noms base::apple::, en laissant des en-têtes de transfert temporaires pour Crashpad (crrev.com/c/4799213, crrev.com/c/4790744, crrev.com/c/4790741, crrev.com/c/4784010).

ChromeDriver 117

Nouvelles fonctionnalités

Correction de bugs

  • Stabilité : correction d'un accès au pointeur nul qui entraînait le plantage de ChromeDriver, ce qui entraînait des erreurs ConnectionRefused lors des tests (crrev.com/c/4675633, Bug 1457101).
  • Navigation : correction d'un problème qui empêchait la gestion uniforme des erreurs NoSuchExecutionContext et NoSuchWindow de Chrome lors de la navigation. Les deux sont désormais correctement mappées pour réessayer l'opération (crrev.com/c/4667156, Bug : 4459).
  • Émulation mobile : correction de la logique d'inférence pour clientHints.mobile. Elle est désormais correctement inférée à partir de userAgent sur Android et définie sur "false" par défaut sur les autres plates-formes. Cela corrige un problème où les tablettes étaient incorrectement signalées comme mobiles (crrev.com/c/4649348, Bug : 4243).
  • Création de session : la création de session a été mise à jour pour renvoyer correctement le code d'erreur SessionNotCreated standard en cas d'échec, en respectant strictement la spécification W3C WebDriver (crrev.com/c/4638223, Bug: 4379). Remarque : Cette modification a ensuite été annulée, car certains chemins de code spécifiques nécessitent des codes d'erreur différents (crrev.com/c/4651188).

Modifications et refactorisations internes

  • Élimination des scripts manuels du processus de publication de ChromeDriver, car ChromeDriver est désormais entièrement intégré au processus de publication de Chrome et disponible via l'infrastructure Chrome for Testing (crrev.com/c/4520687, Bug: 4142).
  • L'infrastructure WPT (Web Platform Tests) migrée utilise désormais le harnais wptrunner officiel au lieu du harnais run_webdriver_tests.py personnalisé, ce qui améliore considérablement la vitesse et la fiabilité de l'exécution. Elle garantit également que ChromeDriver redémarre entre les tests pour isoler les plantages (crrev.com/c/4723147, crrev.com/c/4676070, crrev.com/c/4639168).
  • Refactorisation approfondie de ChromeLauncher et des classes associées pour prendre en charge la transition vers les pipes, en réduisant le couplage avec DevToolsHttpClient et en déplaçant la logique WebSocket dans des branches dédiées (crrev.com/c/4632801, crrev.com/c/4674345).
  • Le champ BrowserInfo.is_headless trompeur a été renommé BrowserInfo.is_headless_shell pour plus de clarté (crrev.com/c/4650452, Bug: 4358).
  • Remplacement de diverses méthodes base::Value obsolètes par les équivalents base::Value::Dict modernes (par exemple, FindDouble(), Set(), size()) dans l'ensemble du code (crrev.com/c/4258936, crrev.com/c/4336805, crrev.com/c/4461067).112.0.5603.0, 113.0.5653.0, 114.0.5733.0
  • L'utilisation de [w]ctype.h a été supprimée au profit d'utilitaires de chaîne de base plus sûrs, et de nouvelles fonctionnalités ont été implémentées pour base::expected (crrev.com/c/4749459, crrev.com/c/4755226).
  • Implémentation des commandes d'automatisation get_fedcm_dialog_title et select_fedcm_account dans TestDriver pour les WPT FedCM (crrev.com/c/4618303).
  • Mise à jour des scripts de compilation du mappeur BiDi pour qu'ils fonctionnent correctement, quel que soit le répertoire de travail actuel (crrev.com/c/4670550).
  • Les fichiers /chrome/test/chromedriver convertis utilisent ARC (Automatic Reference Counting) dans les versions macOS, en ajoutant le boilerplate nécessaire (crrev.com/c/4663602).
  • Tentative de désactivation de la communication par canalisation par défaut via un commit de validation automatique, mais la modification n'a touché que la configuration sans modifier le comportement de canalisation par défaut introduit précédemment (crrev.com/c/4683947).

ChromeDriver 116

Nouvelles fonctionnalités

  • FedCM : ajout d'une nouvelle fonctionnalité permettant aux clients de vérifier si ChromeDriver est compatible avec les commandes FedCM sans avoir à les exécuter et à détecter les erreurs (crrev.com/c/4624924, Bug 1356159).
  • Tests : la réutilisation de la fenêtre de test a été activée pour les tests testharness exécutés via ChromeDriver dans wptrunner afin d'évaluer son impact sur les performances et l'instabilité (crrev.com/c/4515180, Bug 1394572).

Correction de bugs

  • Conformité à la norme C++ : correction du comportement indéfini causé par l'utilisation incorrecte d'énumérations à portée (enum class) directement dans les chaînes de format, en réponse aux nouveaux avertissements du compilateur Clang (crrev.com/c/4628112, Bug: 1456289).
  • FedCM : correction d'un cas limite qui empêchait setdelayenabled de fonctionner correctement, ce qui pouvait être à l'origine de l'instabilité des tests (crrev.com/c/4606064, bug 1453412).

Modifications et refactorisations internes

  • BiDi : la dépendance du mappeur BiDi a été mise à jour et le script de compilation a été modifié pour extraire la dernière révision de "main" par défaut (crrev.com/c/4615087, crrev.com/c/4615791, Bug 4226).
  • ChromeDriver est désormais en mesure d'ouvrir et d'écrire tous les fichiers en utilisant explicitement l'encodage UTF-8 (crrev.com/c/4614522).
  • Refactorisation de ChromeImpl pour éliminer sa dépendance à DevToolsHttpClient et réduction de l'utilisation de SyncWebSocketFactory et BrowserInfo en vue de la communication via des canaux au lieu de WebSockets (crrev.com/c/4571690, crrev.com/c/4571199, Bug: 3480).
  • Suppression du "mode par défaut" obsolète pour les cadres clôturés et mise à jour des tests associés pour activer le nouvel indicateur de fonctionnalité, poursuivant la migration vers les enchères FLEDGE (crrev.com/c/4558645).
  • Amélioration des tests FedCM en remplaçant les assertions WaitForCondition génériques par assertTrue pour indiquer clairement quand des délais d'attente se produisent (crrev.com/c/4590211).
  • Marquage des avertissements raw_ptr instables connus dans les tests unitaires linux-rel (crrev.com/c/4598070).
  • Fichier OWNERS mis à jour pour le mappeur BiDi (crrev.com/c/4614518).

ChromeDriver 115

Nouvelles fonctionnalités

  • Émulation mobile : prise en charge des User-Agent Client Hints dans l'émulation mobile, permettant à ChromeDriver d'analyser les indications client à partir des capacités et des préréglages, et de les transmettre à Chrome (crrev.com/c/4498667, crrev.com/c/4466129, Bug: 4243).
  • Émulation mobile : les préréglages d'émulation mobile ont été mis à jour pour utiliser la version majeure du navigateur hôte au lieu de la version ChromeDriver lors du remplacement de la chaîne de format %s dans l'user-agent (crrev.com/c/4502850, Bug 4243).
  • Configuration : ajout de la compatibilité avec le téléchargement d'une version spécifique de ChromeDriver pour un canal donné, ce qui améliore les scénarios d'automatisation dans lesquels ChromeDriver s'exécute sur une plate-forme différente (comme Android/WebView) de l'hôte (crrev.com/c/4550281).116.0.5791.0

Correction de bugs

  • Classic : correction d'un problème qui entraînait le renvoi incorrect d'un UnknownError au lieu de l'erreur NoSuchElement standard en cas d'échec de la résolution d'un nœud (crrev.com/c/4508952, Bug 4440).
  • Émulation mobile : des assertions plus strictes ont été ajoutées aux préréglages d'émulation mobile pour s'assurer que l'indicateur clientHints.mobile est défini sur "true" si la chaîne userAgent contient "Mobile" (crrev.com/c/4507142, Bug: 4243).
  • Émulation mobile : les remplacements DeviceMetrics ont été migrés pour utiliser la commande CDP Emulation.setDeviceMetricsOverride au lieu de l'équivalent de domaine Page obsolète (crrev.com/c/4502614, Bug : 4243).

Modifications et refactorisations internes

  • BiDi : la dépendance BiDi Mapper a été mise à jour, ce qui permet d'activer les fonctionnalités de sérialisation approfondie (crrev.com/c/4535936, crrev.com/c/4512195).
  • Suppression de la méthode Connect obsolète de DevToolsClient en vue de la migration de ChromeDriver pour communiquer via des canaux (crrev.com/c/4521485, Bug: 3480).
  • Migration de la base de code pour privilégier base::Value::Dict par rapport à base::Value et remplacement des méthodes obsolètes telles que FindStringKey(), SetKey() et SetByDottedPath() (crrev.com/c/4529788, crrev.com/c/4522701, crrev.com/c/4515800, crrev.com/c/4507150).
  • Utilisation des fonctions string_util.h à la place de [w]ctype.h pour des conversions de type plus sûres (crrev.com/c/4529187).
  • La logique de chargement des fichiers de seed a été modifiée pour utiliser des chemins absolus afin d'assurer la cohérence lorsque les scripts et Chrome s'exécutent à différents emplacements (crrev.com/c/4504656).
  • Suppression de la méthode CallAsyncFunction() inutilisée de web_view.h (crrev.com/c/4518363, Bug: 3376).
  • Le nom base::raw_ptr a été automatiquement remplacé par raw_ptr pour respecter les préférences du guide de style (crrev.com/c/4476651).

ChromeDriver 114

Nouvelles fonctionnalités

  • Classique : les informations MobileDevice ont été transmises à MobileEmulationOverrideManager pour préparer le terrain pour les futurs remplacements de Hints client et d'UserAgent (crrev.com/c/4447524).
  • Tests : ajout de fixtures de test pour ChromeDriver (crrev.com/c/4459939).

Correction de bugs

  • Sans interface graphique : correction d'un plantage dans le nouveau mode sans interface graphique en ignorant silencieusement les demandes d'aperçu avant impression scriptées (par exemple, window.print()), en alignant le comportement sur l'ancien mode sans interface graphique (crrev.com/c/4436313, Bug 4385).
  • Fonctionnalités : correction d'un bug d'utilisation après déplacement dans les fonctionnalités ChromeDriver (crrev.com/c/4462094, Bug 4243).
  • DevTools : suppression d'un DCHECK dans DevToolsClientImpl::SendCommandInternal pour éviter les plantages lorsque la connexion aux outils de développement est interrompue, car il ne s'agit pas d'une violation d'invariant (crrev.com/c/4370486, Bug 4385).

Modifications et refactorisations internes

  • BiDi : mise à jour de la dépendance BiDi Mapper (crrev.com/c/4418727).
  • Correction de plusieurs avertissements de pointeur orphelin lors de l'exécution des tests unitaires en gérant correctement les références non propriétaires et la destruction locale dans les tests WebViewImpl et du journaliseur de performances (crrev.com/c/4374824, crrev.com/c/4368179).
  • Migration de la codebase pour utiliser la nouvelle API base::Value v2, en remplaçant les méthodes obsolètes telles que Value::SetPath(), Value::SetStringPath() et base::ListValue (crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520).
  • Toutes les utilisations de base::GUID ont été remplacées par base::Uuid pour s'aligner sur le changement de nom de la bibliothèque de base principale (crrev.com/c/4455083).
  • Divers nettoyages de code ont été effectués, y compris en raccourcissant le code, en utilisant des opérations monadiques pour expected, en supprimant le code mort et en corrigeant les violations de style (crrev.com/c/4475368, crrev.com/c/4464199).
  • Mise à jour des tests impliquant des cadres clôturés pour utiliser l'attribut config au lieu de l'attribut src obsolète (crrev.com/c/4382231).
  • Suppression de l'utilisation inefficace de ShadowDOMV0 (crrev.com/c/4388302).
  • L'ajout d'un indicateur pour un correctif PDF Skia (SK_IGNORE_PDF_EOF_NEWLINE_FIX) a été annulé pour permettre le rebaselining (crrev.com/c/4401451).
  • Mise à jour du propriétaire du script de test ChromeDriver et ajustements pour générer le fichier JSON de configuration exclusivement pour pinpoint (crrev.com/c/4437492, crrev.com/c/4298554).
  • Ajout d'une inclusion manquante (<cstring>) pour std::strlen dans web_view_impl.cc afin de corriger un problème de compilation IWYU (crrev.com/c/4376772).
  • Suppression d'un fichier de test inutilisé (orientation_test.html) (crrev.com/c/4335668).

ChromeDriver 113.0.5672.63

Compatible avec Chrome 113

  • Problème 4205 résolu : mêmes ID d'objet dans les versions classique et bidirectionnelle [Pri-1]
  • Problème 4302 résolu : ne pas supposer que Mapper se trouve dans le premier onglet d'ExecuteGetWindowHandles [Pri-1]
  • Résolution du problème 4356 : Chrome 110 n'utilise pas la valeur de préférence "download.default_directory" [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 113.0.5672.24

Compatible avec Chrome 113

  • Problème 4205 résolu : mêmes ID d'objet dans les versions classique et bidirectionnelle [Pri-1]
  • Problème 4302 résolu : ne pas supposer que Mapper se trouve dans le premier onglet d'ExecuteGetWindowHandles [Pri-1]
  • Résolution du problème 4356 : Chrome 110 n'utilise pas la valeur de préférence "download.default_directory" [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 112.0.5615.49

Compatible avec Chrome 112

  • Problème 3517 résolu : activer la fonctionnalité d'impression pour les navigateurs non headless [Pri-]
  • Résolution du problème 4419 : surcharge importante sur Speedometer lors de l'utilisation de chromedriver [Pri-3]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 112.0.5615.28

Compatible avec Chrome 112

  • Problème 4357 résolu : problème de session Chromedriver version 110.0.5481.77 avec les options --headless et --user-data-dir. [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 111.0.5563.64

Compatible avec la version 111 de Chrome

  • Problème résolu 4216 : Exécuter ChromeDriver avec un BiDiMapper personnalisé [Pri-]
  • Problème 4300 résolu : le handle de fenêtre est interopérable entre les versions classique et bidirectionnelle [Pri-]
  • Problème 4325 résolu : la gestion de toJSON dans jsonSerialize de call_function.js s'écarte de la norme. [Pri-]
  • Résolution du problème 4330 : échec de DCHECK dans DevToolsClientImpl::AddListener [Pri-]
  • Problème résolu 4357 : Problème de session ChromeDriver avec les options --headless et --user-data-dir [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 111.0.5563.41

Compatible avec la version 111 de Chrome

  • Problème résolu 4357 : Problème de session ChromeDriver avec les options --headless et --user-data-dir [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 111.0.5563.19

Compatible avec la version 111 de Chrome

  • Problème résolu 4216 : Exécuter ChromeDriver avec un BiDiMapper personnalisé [Pri-]
  • Problème 4300 résolu : le handle de fenêtre est interopérable entre les versions classique et bidirectionnelle [Pri-]
  • Problème 4325 résolu : la gestion de toJSON dans jsonSerialize de call_function.js s'écarte de la norme. [Pri-]
  • Résolution du problème 4330 : échec de DCHECK dans DevToolsClientImpl::AddListener [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 110.0.5481.77

Compatible avec Chrome 110

  • Problème résolu 4193 : Échec du démarrage d'une nouvelle session sur Android 13 [Pri-]
  • Résolution du problème 4272 : WebSocket doit traiter le code 0 comme une indication de FIN [Pri-]
  • Problème 4276 résolu : correction des problèmes de connectivité dans ChromeDriver [Pri-]
  • Problème résolu 4295 : ChromeDriver avec "webSocketUrl": true est instable [Pri-]
  • Problème résolu 4297 : ChromeDriver Bidi sérialise de manière incorrecte [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 110.0.5481.30

Compatible avec Chrome 110

  • Problème résolu 4193 : Échec du démarrage d'une nouvelle session sur Android 13 [Pri-]
  • Résolution du problème 4272 : WebSocket doit traiter le code 0 comme une indication de FIN [Pri-]
  • Problème 4276 résolu : correction des problèmes de connectivité dans ChromeDriver [Pri-]
  • Problème résolu 4295 : ChromeDriver avec "webSocketUrl": true est instable [Pri-]
  • Problème résolu 4297 : ChromeDriver Bidi sérialise de manière incorrecte [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 109.0.5414.74

Compatible avec Chrome version 109

  • Problème 4179 résolu : la session BiDi doit accepter plusieurs connexions [Pri-]
  • Problème 4203 résolu : améliorer les informations sur les crédits [Pri-]
  • Problème 4263 résolu : plantage sur Meta+A [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 109.0.5414.25

Compatible avec Chrome version 109

  • Problème 4179 résolu : la session BiDi doit accepter plusieurs connexions [Pri-]
  • Problème 4203 résolu : améliorer les informations sur les crédits [Pri-]
  • Problème 4263 résolu : plantage sur Meta+A [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 108.0.5359.71

Compatible avec la version 108 de Chrome Pour en savoir plus, consultez les notes de version.

ChromeDriver 108.0.5359.22

Compatible avec Chrome 108

  • Problème 4204 résolu : correction de l'échec du test WPT test_top_level_and_one_child [Pri-]
  • Problème 4215 résolu : renommer la compilation chromedriver_mac64_m1 en chromedriver_mac_arm64 [Pri-]
  • Résolution du problème 4221 : plantage lorsqu'une commande de clic ferme le navigateur [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 107.0.5304.62

Compatible avec Chrome version 107

Pour en savoir plus, consultez les notes de version.

ChromeDriver 107.0.5304.18

Compatible avec Chrome version 107

  • Résolution du problème 4180 : interdiction de gérer les commandes BiDi tant que BiDiMapper n'a pas démarré [Pri-]
  • Résolution du problème 4198 : ChromeDriver BiDi ne doit pas supposer que BiDiMapper se trouve toujours dans le premier onglet [Pri-]
  • Problème 4207 résolu : erreur WebDriver lors de l'exécution de WPT [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 106.0.5249.61

Compatible avec la version 106 de Chrome

Pour en savoir plus, consultez les notes de version.

ChromeDriver 106.0.5249.21

Compatible avec la version 106 de Chrome

  • Problème résolu 4016 : Ajouter la compatibilité bidirectionnelle de base à ChromeDriver (basée sur Mapper) [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 105.0.5195.52

Compatible avec Chrome 105

Pour en savoir plus, consultez les notes de version.

ChromeDriver 105.0.5195.19

Version de Chrome compatible

Pour en savoir plus, consultez les notes de version.

ChromeDriver 104.0.5112.79

Compatible avec Chrome 104

Pour en savoir plus, consultez les notes de version.

ChromeDriver 104.0.5112.29

Compatible avec Chrome 104

  • Résolution du problème 4121 : la commande WebDriver échoue parfois avec le message "unexpected command response" (réponse de commande inattendue) [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 104.0.5112.20

Compatible avec Chrome 104

  • Résolution du problème 4121 : la commande WebDriver échoue parfois avec le message "unexpected command response" (réponse de commande inattendue) [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 103.0.5060.134

Compatible avec Chrome 103

  • Problème résolu 4048 : frame cible détaché [Pri-]
  • Résolution du problème 4121 : la commande WebDriver échoue parfois avec le message "unexpected command response" (réponse de commande inattendue) [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 103.0.5060.53

Compatible avec Chrome 103

  • Problème résolu 4048 : frame cible détaché [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 103.0.5060.24

Compatible avec Chrome 103

Pour en savoir plus, consultez les notes de version.

ChromeDriver 102.0.5005.61

Compatible avec Chrome 102

  • Problème 1309282 résolu : chromedriver ne prend pas en charge les commutateurs à valeurs multiples [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 102.0.5005.27

Compatible avec Chrome 102

  • Problème 1309282 résolu : chromedriver ne prend pas en charge les commutateurs à valeurs multiples [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 101.0.4951.41

Compatible avec Chrome 101

  • Résolution du problème 4046 : DCHECK détecté lors de l'ajout d'un frame cloisonné vide [Pri-]
  • Problème 4080 résolu : Échec du passage à un frame imbriqué [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 101.0.4951.15

Compatible avec Chrome 101

  • Résolution du problème 4046 : DCHECK détecté lors de l'ajout d'un frame cloisonné vide [Pri-]
  • Problème 4080 résolu : Échec du passage à un frame imbriqué [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 100.0.4896.60

Compatible avec la version 100 de Chrome

  • Problème résolu 4002 : Prise en charge des cadres clôturés [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 100.0.4896.20

Compatible avec la version 100 de Chrome

  • Problème résolu 4002 : Prise en charge des cadres clôturés [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 99.0.4844.51

Compatible avec Chrome 99

Pour en savoir plus, consultez les notes de version.

ChromeDriver 99.0.4844.35

Compatible avec Chrome 99

  • RÉTABLIE !!! Résolution du problème 2269 : impossible d'utiliser des caractères non BMP (points de code au-dessus de U+FFFF) [Pri-3]
  • Problème résolu chromium:1295243 : régression dans ChromeDriver sendKeys [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 99.0.4844.17

Compatible avec Chrome 99

Pour en savoir plus, consultez les notes de version.

ChromeDriver 98.0.4758.102

Compatible avec Chrome 98

  • Problème 3933 résolu : le clic sur le bord de la fenêtre d'affichage est inefficace sans erreur [Pri-]
  • RÉTABLIE !!! Résolution du problème 2269 : impossible d'utiliser des caractères non BMP (points de code au-dessus de U+FFFF) [Pri-3]
  • Problème résolu chromium:1295243 : régression dans ChromeDriver sendKeys [Pri-1]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 98.0.4758.80

Compatible avec Chrome 98

  • Problème 3933 résolu : le clic sur le bord de la fenêtre d'affichage est inefficace sans erreur [Pri-]
  • Résolution du problème 2269 : impossible d'utiliser des caractères non BMP (points de code au-dessus de U+FFFF) [Pri-3]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 98.0.4758.48

Compatible avec Chrome 98

  • Problème 3933 résolu : le clic sur le bord de la fenêtre d'affichage est inefficace sans erreur [Pri-]
  • Résolution du problème 2269 : impossible d'utiliser des caractères non BMP (points de code au-dessus de U+FFFF) [Pri-3]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 97.0.4692.71

Compatible avec Chrome version 97

  • Problème 3878 résolu : meilleure gestion des coordonnées fractionnaires des éléments pour le clic sur un élément [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 97.0.4692.36

Compatible avec Chrome version 97

  • Problème 3878 résolu : meilleure gestion des coordonnées fractionnaires des éléments pour le clic sur un élément [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 97.0.4692.20

Compatible avec Chrome version 97

  • Problème 3878 résolu : meilleure gestion des coordonnées fractionnaires des éléments pour le clic sur un élément [Pri-]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 96.0.4664.45

Compatible avec la version 96 de Chrome

  • Résolution du problème 3445 : Impossible d'accéder aux éléments d'un iFrame à l'intérieur d'une racine fantôme [Pri-3]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 96.0.4664.35

Compatible avec la version 96 de Chrome

  • Résolution du problème 3445 : Impossible d'accéder aux éléments d'un iFrame à l'intérieur d'une racine fantôme [Pri-3]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 96.0.4664.18

Compatible avec la version 96 de Chrome

  • Résolution du problème 3445 : Impossible d'accéder aux éléments d'un iFrame à l'intérieur d'une racine fantôme [Pri-3]

Pour en savoir plus, consultez les notes de version.

ChromeDriver 95.0.4638.69

Compatible avec la version 95 de Chrome

  • Problème 3857 résolu : l'en-tête d'hôte ou l'en-tête d'origine est spécifié et ne figure pas sur la liste blanche ou sur localhost [Pri-1]
  • Ajout de l'argument --allowed-origins

Pour en savoir plus, consultez les notes de version.

ChromeDriver 95.0.4638.54

Compatible avec la version 95 de Chrome

  • Problème 3857 résolu : l'en-tête d'hôte ou l'en-tête d'origine est spécifié et ne figure pas sur la liste blanche ou sur localhost [Pri-1]
  • Ajout de l'argument --allowed-origins

Pour en savoir plus, consultez les notes de version.

ChromeDriver 95.0.4638.17

Compatible avec la version 95 de Chrome

  • Problème 3857 résolu : l'en-tête d'hôte ou l'en-tête d'origine est spécifié et ne figure pas sur la liste blanche ou sur localhost [Pri-1]
  • Ajout de l'argument --allowed-origins

Pour en savoir plus, consultez les notes de version.

ChromeDriver 95.0.4638.10

Compatible avec la version 95 de Chrome

  • Problème 3857 résolu : l'en-tête d'hôte ou l'en-tête d'origine est spécifié et ne figure pas sur la liste blanche ou sur localhost [Pri-1]
  • Ajout de l'argument --allowed-origins

Pour en savoir plus, consultez les notes de version.

ChromeDriver 94.0.4606.113

Compatible avec la version 94 de Chrome

Pour en savoir plus, consultez les notes de version.

ChromeDriver 94.0.4606.61

Compatible avec la version 94 de Chrome

Pour en savoir plus, consultez les notes de version.

ChromeDriver 94.0.4606.41

Compatible avec la version 94 de Chrome

Pour en savoir plus, consultez les notes de version.

ChromeDriver 93.0.4577.63

Compatible avec Chrome 93

Pour en savoir plus, consultez les notes de version.

ChromeDriver 93.0.4577.15

Compatible avec Chrome 93

Pour en savoir plus, consultez les notes de version.

ChromeDriver 92.0.4515.107

Compatible avec Chrome 92

Pour en savoir plus, consultez les notes de version.

ChromeDriver 92.0.4515.43

Compatible avec Chrome 92

  • Problème 3389 résolu : validation de l'hôte pour les requêtes ChromeDriver

Pour en savoir plus, consultez les notes de version.

ChromeDriver 91.0.4472.101

Compatible avec Chrome 91

  • Problème résolu 1205107 : Impossible d'obtenir la valeur de l'attribut pour les champs de l'application Web.

Pour en savoir plus, consultez les notes de version.

ChromeDriver 91.0.4472.19

Compatible avec Chrome 91

  • Problème 3744 résolu : SendKeys() et Click() échouent silencieusement après la navigation vers un lien
  • Problème 3746 résolu : le point de terminaison de l'attribut met à jour les valeurs de manière incorrecte

Pour en savoir plus, consultez les notes de version.

ChromeDriver 90.0.4430.24

Compatible avec Chrome 90

  • Résolution du problème 3708 : GetElementLocation's inView échoue pour les éléments du Shadow DOM
  • Problème 3721 résolu : collecte du journal des performances pour le service worker lorsqu'il est activé
  • Problème 3731 résolu : AdbImpl::GetPidByName ne fonctionne pas correctement sur les systèmes d'exploitation Android non standards, comme sur OnePlus
  • Problème 3733 résolu : échec catastrophique avec le domaine sur localhost
  • Résolution du problème 3734 : le pilote doit générer une erreur lors de la tentative de définition d'un cookie sur un domaine incorrect
  • Résolution du problème 3743 : refactoriser la fonction d'appel et corriger le problème de suppression d'éléments

Pour en savoir plus, consultez les notes de version.

ChromeDriver 89.0.4389.23

Compatible avec Chrome 89

  • Problème résolu 3667 : délai dépassé lors de la réception d'un message du moteur de rendu
  • Résolution du problème 3675 : GetElementLocation utilise la méthode inView qui gère mal les valeurs booléennes en tant que tableaux
  • Résolution du problème 3682 : GetElementRegion renvoie une taille incorrecte pour les éléments partiellement hors du champ de vision
  • Problème 3690 résolu : ChromeDriver échoue si les extensions utilisent l'API chrome.windows

Pour en savoir plus, consultez les notes de version.

ChromeDriver 88.0.4324.96

Compatible avec Chrome 88

  • Problème 3641 résolu : la page ne se charge pas/ne s'affiche pas lorsque la fenêtre du navigateur n'est pas au premier plan avec Chrome Beta v87 et chromedriver v(87/86)

Pour en savoir plus, consultez les notes de version.

ChromeDriver 88.0.4324.27

Compatible avec Chrome 88

  • Problème 3611 résolu : la sortie getText() dans Protractor est différente de <element>.innerText
  • Problème 3625 résolu : améliorer la compatibilité des captures d'écran des éléments
  • Problème 3628 résolu : référence d'élément obsolète et URL incorrecte signalée avec une autre URL dans son chemin d'accès
  • Problème 3631 résolu : ajout de la compatibilité avec la fonctionnalité webauthn:extension:largeBlob
  • Résolution du problème 3635 : Chromedriver 86 – chromedriver.quit() ne semble pas transmettre correctement l'événement de déchargement
  • Résolution du problème 3649 : la copie du texte sélectionné dans le presse-papiers ne fonctionne pas sous Windows 10 en mode sans affichage

Pour en savoir plus, consultez les notes de version.

ChromeDriver 87.0.4280.88

Compatible avec Chrome version 87

  • Problème 3641 résolu : la page ne se charge pas/ne s'affiche pas lorsque la fenêtre du navigateur n'est pas au premier plan avec Chrome Beta v87 et chromedriver v(87/86)
  • Problème 3657 résolu : le délai d'attente du navigateur d'arrière-plan de la capture d'écran a expiré

Pour en savoir plus, consultez les notes de version.

ChromeDriver 87.0.4280.20

Compatible avec Chrome version 87

  • Problème 2421 résolu : suppression des anciens canaux de redirection de port sur le serveur adb Android
  • Problème 3474 résolu : la liste des appareils mobiles émulés doit être mise à jour
  • Problème 3507 résolu : implémenter "get computed role"
  • Résolution du problème 3508 : implémenter "get computed label"
  • Résolution du problème 3584 : renommer l'option de ligne de commande ChromeDriver --whitelisted-ips
  • Problème 3588 résolu : connexion WebSocket bidirectionnelle
  • Résolution du problème 3594 : la navigation se termine prématurément si l'OOPIF se charge avant la page principale
  • Problème 3598 résolu : option de ligne de commande permettant de transférer le port des outils de développement vers le socket webview_devtools_remote
  • Résolution du problème 3608 : l'adresse debuggerAddress de Chromedriver n'est pas compatible avec IPv6

Pour en savoir plus, consultez les notes de version.

ChromeDriver 86.0.4240.22

Compatible avec la version 86 de Chrome

  • Résolution du problème 3370 : arrêt de Chrome en douceur pour que le cookie soit correctement enregistré dans le fichier de persistance SQLite
  • Problème 3401 résolu : la fonction JS "Get Element Location" ne localise pas le centre visible de l'élément
  • Problème 3462 résolu : la touche CMD ne fonctionne pas pour sendKeys sur MAC
  • Problème résolu 3541 : Améliorer le journal entre le client et ChromeDriver
  • Problème résolu 3559 : Afficher la version de Chrome lorsque ChromeDriver signale une incompatibilité

Pour en savoir plus, consultez les notes de version.

ChromeDriver 85.0.4183.87

Compatible avec la version 85 de Chrome

  • Résolution du problème 3578 : Chrome 85 n'autorise plus l'interaction fluide avec les fenêtres lorsqu'une boîte de dialogue d'alerte est ouverte

Pour en savoir plus, consultez les notes de version.

ChromeDriver 85.0.4183.83

Compatible avec la version 85 de Chrome

  • Problème 3577 résolu : ChromeDriver 85 ne détecte pas le changement de répertoire Chrome (C:\Program Files)

Pour en savoir plus, consultez les notes de version.

ChromeDriver 85.0.4183.38

Compatible avec la version 85 de Chrome

  • Problème 3214 résolu : ChromeDriver78 : Sendkeys réinitialise la sélection de texte avec contenteditable
  • Problème résolu 3376 : supprimer la commande LaunchApp de ChromeDriver
  • Problème 3432 résolu : parfois, NavigationTracker ne détecte pas la fin du chargement de la page
  • Résolution du problème 3481 : nouveau point de terminaison d'impression conforme à la spécification W3C
  • Problème 3488 résolu : driver.get ne génère pas d'erreur lorsque le proxy est mal configuré
  • Problème résolu 3502 : Utiliser document.hasFocus() pour vérifier si l'élément est sélectionné
  • Problème résolu 3515 : selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message

Pour en savoir plus, consultez les notes de version.

ChromeDriver 84.0.4147.30

Compatible avec Chrome 84

  • Problème 3420 résolu : chromedriver ne répond plus après le basculement vers la fenêtre d'impression
  • Problème 3421 résolu : le pilote renvoie du texte cyrillique sans style
  • Résolution du problème 3422 : GetElementText ne fonctionne pas avec le prototype 1.6.0.3
  • Problème 3434 résolu : impossible d'obtenir les messages "assert" à partir des journaux "browser"

Pour en savoir plus, consultez les notes de version.

ChromeDriver 83.0.4103.39

Compatible avec la version 83 de Chrome

  • Mise à jour de Chromedriver pour qu'il fonctionne correctement avec prototype.js.

Pour en savoir plus, consultez les notes de version.

ChromeDriver 83.0.4103.14

Compatible avec la version 83 de Chrome

  • Problème résolu 1778 : Abandonner launchApp de ChromeDriver
  • Problème 2520 résolu : InitSession peut attendre indéfiniment lorsque Chrome ne répond pas
  • Problème résolu 3120 : téléchargement en mode headless depuis un nouvel onglet
  • Problème résolu 3234 : Confirmer le point-virgule trouvé avant la sous-chaîne
  • Problème résolu 3240 : ExecuteGetElementRect ne vérifie pas l'état renvoyé par GET_SIZE
  • Problème 3331 résolu : la méthode get_cookies() renvoie des clés "expiry" de type double, mais devrait être int64 en mode W3C
  • Problème résolu 3332 : le délai avant nouvelle tentative est enregistré comme grave
  • Problème 3339 résolu : Chromedriver s'est arrêté de manière inattendue avec le code null, signal SIGTRAP
  • Problème 3351 résolu : améliorer le message sur les considérations de sécurité
  • Problème 3352 résolu : prise en charge de SendKeys pour les éléments de couleur
  • Problème 3353 résolu : "Wait for Pending Navigation" (Attendre la navigation en attente) se poursuit après la destruction du contexte du frame
  • Résolution du problème 3375 : Chromedriver v80 se bloque sur getPageSource sur certains sites
  • Problème résolu 3383 : ChromeDriver 80+ sur Windows semble quitter ou bloquer certaines commandes d'élément ou de clic
  • Problème 3399 résolu : supprimer la vérification wasThrown

ChromeDriver 81.0.4044.138

Compatible avec la version 81 de Chrome

  • Mise à jour de Chromedriver pour qu'il fonctionne correctement avec prototype.js.

Pour en savoir plus, consultez les notes de version.

ChromeDriver 81.0.4044.69

Compatible avec la version 81 de Chrome

  • Correction : Chromedriver plante sur getPageSource sur certains sites.
    • Correction : plantages de ChromeDriver sur certaines commandes d'élément ou de clic.

Pour en savoir plus, consultez les notes de version.

ChromeDriver 81.0.4044.20

Compatible avec la version 81 de Chrome

  • Correction d'une erreur lors de la tentative d'obtention de l'emplacement d'un élément HTML.
    • Les commandes "Get Cookie" et "Add Cookie" sont désormais spécifiques aux frames.
    • Résolution de certains problèmes qui se produisent avec les sites qui redéfinissent les objets JavaScript standards.
    • ChromeDriver continuera d'attendre la fin du chargement après avoir reçu un message "Target Closed" (Cible fermée).
    • Chromedriver renvoie désormais un code d'erreur conforme aux spécifications pour les délais d'attente
    • Correction : temps de réponse ChromeDriver anormalement lent pour la commande NewSession.
    • Les délais avant expiration définis par l'utilisateur et supérieurs à 10 minutes sont désormais acceptés.
    • Correction : ChromeDriver ne peut pas se connecter aux outils de développement en raison d'une incompatibilité entre IPv4 et IPv6.
    • Restauration de l'ordre de recherche du binaire Chrome sur Linux.

Pour en savoir plus, consultez les notes de version.

ChromeDriver 80.0.3987.106

Compatible avec la version 80 de Chrome

  • Restauration de l'ordre de recherche du binaire Chrome sur Linux

Pour en savoir plus, consultez les notes de version.

ChromeDriver 80.0.3987.16

Compatible avec la version 80 de Chrome

  • Correction du problème d'annulation du chargement de la page lors de l'utilisation d'un proxy.
  • Chromedriver attend désormais le chargement du frame actuel.
  • Le journal ChromeDriver inclut le port utilisé par le pilote.
  • Enabled SetGeoLocation for w3c mode.
  • Ajout du texte d'alerte manquant pour l'état UnexpectedAlertOpen.
  • Amélioration du message lorsque l'extension CRX2 est chargée.
  • Correction d'une condition de concurrence potentielle dans ExecuteGetPageSource.
  • ChromeDriver ajoutera l'indicateur "--ignore-certificate-errors" lorsque la fonctionnalité acceptInsecureCerts est définie sur "true".
  • Mise à jour du message d'erreur et de l'état de retour en cas d'absence de contexte d'exécution
  • Correction : ChromeDriver peut se bloquer indéfiniment en attendant la navigation en cours.
  • Ajout de l'attribut SameSite à AddCookie et GetCookie.

Pour en savoir plus, consultez les notes de version.

ChromeDriver 79.0.3945.36

Compatible avec la version 79 de Chrome

Inclut la modification suivante par rapport à la version 79.0.3945.16 :

  • Correction du calcul incorrect des coordonnées des éléments

Pour en savoir plus, consultez les notes de version.

ChromeDriver 79.0.3945.16

Compatible avec la version 79 de Chrome

  • Correction du plantage de ChromeDriver causé par une alerte JavaScript déclenchée lors de l'exécution d'une commande
    • Correction d'un bug qui entraînait le blocage de Chromedriver lorsqu'une alerte était déclenchée lors de la prise d'une capture d'écran
    • Suppression de --ignore-certificate-errors de la commande de lancement de Chrome
    • Modification de la plate-forme et de platformName en "windows" sur Win10
    • Correction de la fenêtre undefined.navigator.webdriver lorsque "enable-automation" est exclu
  • Correction du test WPT "test_not_editable_inputs[hidden]"
    • Correction de l'erreur "L'élément n'est pas cliquable" lors de l'utilisation du mode headless

Pour en savoir plus, consultez les notes de version.

ChromeDriver 78.0.3904.105

Compatible avec la version 78 de Chrome

Inclut la modification suivante par rapport à la version 78.0.3904.70 : * Correction du calcul incorrect des coordonnées des éléments

Pour en savoir plus, consultez les notes de version.

ChromeDriver 78.0.3904.70

Compatible avec la version 78 de Chrome

Inclut la modification suivante par rapport à la version 78.0.3904.11 :

  • Nous avons annulé la modification apportée à la taille des captures d'écran sur l'écran Retina en raison de plusieurs problèmes signalés.

Pour en savoir plus, consultez les notes de version.

ChromeDriver 78.0.3904.11

Compatible avec la version 78 de Chrome

  • Correction de plusieurs problèmes liés à la sérialisation des objets JavaScript
    • Correction d'un bug lié à la correspondance des fonctionnalités pour Chrome sur Android
    • Mise en place de l'automatisation des autorisations
    • Taille fixe des captures d'écran sur un écran Retina
  • Correction du délai d'expiration du chargement de page dans certains cas
    • Amélioration de la correspondance des capacités platformName
    • Correction du code d'erreur renvoyé lors du déplacement du pointeur vers les options de la liste déroulante
    • Correction d'un problème affectant le téléchargement en mode headless

Pour en savoir plus, consultez les notes de version.

ChromeDriver 77.0.3865.40

Compatible avec la version 77 de Chrome

Inclut les modifications suivantes par rapport à la version 77.0.3865.10 :

  • Correction de deux bugs liés à la sérialisation et à la désérialisation des objets JavaScript
  • Correction de la gestion de platformName: android lors de la mise en correspondance des capacités

Pour en savoir plus, consultez les notes de version.

ChromeDriver 77.0.3865.10

Compatible avec la version 77 de Chrome

  • Correction de plusieurs problèmes dans l'implémentation de l'API Actions
    • Amélioration de l'exécution du code JavaScript et de la gestion des résultats
    • Correction d'un bug qui refusait à tort les requêtes POST avec un corps vide en mode OSS
  • Un outil de suivi de la navigation plus robuste
  • Prise en charge de la stratégie de chargement de page anticipé
    • Ajout de la commande "Nouvelle fenêtre" à partir de la spécification W3C WebDriver
  • Prise en charge de l'enregistrement des téléchargements de fichiers en mode sans affichage
  • Ajout de la prise en charge du chargement des extensions CRX3

Pour en savoir plus, consultez les notes de version.

ChromeDriver 76.0.3809.126

Compatible avec la version 76 de Chrome

Inclut les modifications suivantes par rapport à la version 76.0.3809.68 :

  • Correction de deux bugs liés à la sérialisation et à la désérialisation des objets JavaScript

Pour en savoir plus, consultez les notes de version.

ChromeDriver 76.0.3809.68

Compatible avec la version 76 de Chrome

Inclut les modifications suivantes par rapport à la version 76.0.3809.25 :

  • Correction d'un bug lié à la détection des références circulaires dans les objets JavaScript
  • Correction d'un bug qui entraînait le plantage de ChromeDriver lorsque certains types d'erreurs JavaScript se produisaient
  • Correction d'un bug qui empêchait l'API Actions d'interagir avec les éléments à l'intérieur des Shadow DOM
    • Correction d'un bug lié au suivi de l'état des touches de modification entre les commandes de l'API Actions
    • Correction d'un bug lié au suivi des positions du pointeur entre les commandes de l'API Actions
    • Enregistrement de l'erreur "Impossible d'appeler une commande non conforme à la norme W3C en mode W3C" dans le fichier journal lorsqu'elle se produit

Pour en savoir plus, consultez les notes de version.

ChromeDriver 76.0.3809.25

Compatible avec la version 76 de Chrome

Inclut les modifications suivantes par rapport à la version 76.0.3809.12 :

  • Correction d'un bug qui refusait à tort les requêtes POST avec un corps vide en mode OSS
  • Ajout de nouveaux points de terminaison pour récupérer le journal Chrome
    • Ajout d'un point de terminaison pour la commande "Is Displayed" en mode W3C

Pour en savoir plus, consultez les notes de version.

ChromeDriver 76.0.3809.12

Compatible avec la version 76 de Chrome

  • Implémentation terminée de l'API Actions
    • Amélioration de la conformité aux spécifications de la gestion du délai d'expiration des scripts
    • Amélioration de la sérialisation des résultats de la commande "Exécuter le script"
    • Résolution des problèmes liés au défilement de l'élément dans la vue
    • Ajout de la gestion de la touche "Annuler" définie dans la spécification WebDriver
    • Correction du traitement de la réponse d'erreur d'alerte non traitée
    • Traitement fixe de l'élément <details>
    • Mise à jour de l'option excludeSwitches pour autoriser les tirets de début facultatifs dans les noms de commutateurs

Pour en savoir plus, consultez les notes de version.

ChromeDriver 75.0.3770.140

Compatible avec Chrome 75

Inclut les modifications suivantes par rapport à la version 75.0.3770.90 :

  • Correction d'un bug qui entraînait le plantage de ChromeDriver lorsqu'un certain type d'erreur JavaScript se produisait
  • Correction d'un bug lié à la conservation de l'état des touches de modification entre les actions

Pour en savoir plus, consultez les notes de version.

ChromeDriver 75.0.3770.90

Compatible avec Chrome 75

Inclut les modifications suivantes par rapport à la version 75.0.3770.8 :

  • Correction d'un bug qui refusait à tort les requêtes POST avec un corps vide en mode OSS
  • Ajout de nouveaux points de terminaison pour récupérer le journal Chrome

Pour en savoir plus, consultez les notes de version.

ChromeDriver 75.0.3770.8

Compatible avec Chrome 75

La modification la plus notable est que ChromeDriver s'exécute désormais par défaut en mode conforme à la norme W3C. Voici d'autres modifications :

  • Correction d'un bug qui entraînait le déclenchement de l'événement de flou deux fois lors de l'effacement d'un élément
  • Renommage de la fonctionnalité loggingPrefs en goog:loggingPrefs, comme l'exige la norme W3C
  • Correction de la gestion des erreurs en mode W3C
    • Gestion correcte de la création de cookies sans point au début du nom de domaine
    • Autorise la valeur nulle pour le délai d'expiration du script
    • Correction de la commande "Envoyer des touches" pour l'entrée de fichier avec l'attribut "multiple"
    • Correction de la commande "Get Active Element" (Obtenir l'élément actif) pour renvoyer l'erreur "no such element" (aucun élément de ce type) lorsqu'aucun élément actif n'existe
    • Correction de la navigation vers une URL incorrecte pour renvoyer une erreur "argument non valide"
    • Correction du code d'état HTTP lorsqu'un ID de session non valide est reçu
    • Correction de la réponse d'erreur lorsque le paramètre d'entrée est manquant ou incorrect
    • Correction de la commande "Exécuter le script" pour gérer les commentaires JavaScript orientés ligne

Pour en savoir plus, consultez les notes de version.

ChromeDriver 74.0.3729.6

Compatible avec la version 74 de Chrome

  • Correction d'un bug qui générait un fichier debug.log inattendu sous Windows
  • Correction des clics de souris et du glisser-déposer dans le document SVG
  • Ajout d'un en-tête cache-control dans les réponses de ChromeDriver
  • Correction du type d'erreur lorsque le clic est intercepté par un autre élément
  • Correction d'un bug qui entraînait l'échec de ChromeDriver sur les appareils Linux sans /dev/shm
  • Correction de certains types d'événements de double-clic
  • Correction de la commande Get Sessions
  • Correction de la vérification des erreurs dans la commande "Passer au frame"
  • Correction de la commande "Afficher la source de la page"

Pour en savoir plus, consultez les notes de version.

ChromeDriver 73.0.3683.68

Compatible avec la version 73 de Chrome

  • Correction d'un bug qui générait un fichier debug.log inattendu sous Windows
  • Correction du code d'erreur renvoyé par la commande "Exécuter le script" dans certains scénarios
  • Ajout d'un en-tête cache-control dans les réponses de ChromeDriver
  • Le serveur HTTP conserve désormais la connexion active par défaut.
  • Correction de la commande "Fermer la fenêtre" pour gérer correctement les invites utilisateur
  • Correction du code d'erreur renvoyé lors de l'envoi de touches à un élément désactivé
  • Amélioration de la conformité des spécifications concernant la gestion des valeurs de délai avant expiration
  • Amélioration de la conformité de la commande "Ajouter un cookie" avec les spécifications
    • Augmentation de la longueur de la file d'attente du serveur HTTP
  • Correction de la commande "Is Element Displayed" dans le Shadow DOM v0
    • Ajout d'un avertissement concernant la modification du comportement de la commande "Effacer l'élément" dans le fichier journal
  • Correction de la commande "Exécuter le script" pour convertir correctement document.all au format JSON
  • Amélioration de la gestion des références d'éléments incorrectes

Pour en savoir plus, consultez les notes de version.

ChromeDriver 2.46

Compatible avec Chrome 71 à 73

  • Correction du code d'erreur renvoyé par la commande "Exécuter le script" dans certains scénarios
  • Le serveur HTTP conserve désormais la connexion active par défaut.
  • Correction de la commande "Fermer la fenêtre" pour gérer correctement les invites utilisateur
  • Correction du code d'erreur renvoyé lors de l'envoi de touches à un élément désactivé
  • Amélioration de la conformité des spécifications concernant la gestion des valeurs de délai avant expiration
  • Amélioration de la conformité de la commande "Ajouter un cookie" avec les spécifications
  • Amélioration de la conformité des spécifications de la commande "Passer à l'image suivante"
  • Augmentation de la longueur de la file d'attente du serveur HTTP
  • Correction de la commande "Is Element Displayed" dans Shadow DOM v0
  • Commande "Double-clic sur un élément fixe"
  • Ajout d'un avertissement concernant la modification du comportement de la commande "Effacer l'élément" dans le fichier journal
  • Correction de la commande "Exécuter le script" pour convertir correctement document.all au format JSON
  • Amélioration de la gestion des références d'éléments incorrectes

Pour en savoir plus, consultez les notes de version.

ChromeDriver 2.45

Compatible avec Chrome 70 à 72

  • Correction : la nouvelle session n'est pas conforme aux spécifications
  • Correction : ChromeDriver ne doit pas lancer Chrome si les versions de Chrome et de ChromeDriver sont incompatibles
  • Correction du problème lié à la commande "Find Element" (Rechercher un élément) qui renvoyait un code d'erreur incorrect lorsqu'un sélecteur non valide était utilisé
  • Correction de l'erreur liée à certains codes d'état ChromeDriver
  • Correction d'une erreur de compilation dans JS à l'intérieur de WebViewImpl::DispatchTouchEventsForMouseEvents
  • Les commandes de taille de fenêtre fixe doivent gérer les requêtes utilisateur
  • ChromeDriver corrigé ne démarre pas correctement Chrome avec l'option Chrome "user-data-dir="
  • La commande d'état fixe n'est pas conforme aux spécifications
  • Correction de l'ajout de la prise en charge de strictFileInteractability

ChromeDriver 2.44

Compatible avec Chrome 69 à 71

  • Correction de WindowMaximize sur Mac
  • Correction de l'erreur d'ouverture d'alerte incorrecte pour l'appel de gestion de fenêtre
  • Fixed Element Send Keys should get "text" property in W3C mode
  • Le cas particulier XML fixe de "Is Element Enabled" n'est pas géré conformément aux spécifications
  • Correction du cas particulier XML où la valeur CSS de l'élément Get n'est pas gérée conformément aux spécifications
  • Fixed Set Window Rect needs to check for invalid input
  • Correction de la prise en charge des nouveaux modes unhandledPromptBehavior

ChromeDriver 2.43

Compatible avec Chrome 69 à 71

Voici les modifications apportées :

  • Correction de l'analyse de la configuration du proxy non conforme aux normes
  • La commande "Lancer l'application" est instable
  • Correction du problème de capture d'écran incorrecte d'un élément dans un iFrame
  • Ajout de la prise en charge du redimensionnement des fenêtres par ChromeDriver sur une connexion à distance
  • Correction du problème lié aux codes d'erreur qui ne sont pas gérés dans l'élément "Effacer"
  • Correction du problème "Ne pas attendre que l'élément soit visible"
  • La propriété "Obtenir la propriété de l'élément" n'est pas implémentée
  • Le bouton "Passer à la frame" ne respecte pas les spécifications
  • Correction : Execute Async Script ne renvoie pas de codes d'erreur conformes aux spécifications
  • Correction du problème lié à l'exécution du script qui ne renvoyait pas de codes d'erreur conformes aux spécifications
  • Correction du code d'erreur dans ExecuteGet non conforme aux spécifications
  • Correction du problème lié à l'envoi d'un texte d'alerte qui ne renvoyait pas de codes d'erreur conformes aux spécifications
  • Correction de clear() sur un type d'entrée="date" qui fait croire que l'élément n'est pas modifiable par l'utilisateur
  • Le Chromedriver corrigé obtient le handle de fenêtre pour l'onglet ouvert manuellement
  • Correction de l'option "Autoriser l'ajout ou le démarrage d'un fichier journal pour chromedriver"
  • Correction : "Nouvelle session" n'appelle pas le mode W3C si l'indicateur se trouve dans "firstMatch"

ChromeDriver 2.42

Compatible avec Chrome 68 à 70

Voici les modifications apportées :

  • Correction de ClickElement dans l'émulation mobile
  • Correction des adresses IP ajoutées à la liste blanche avec IPv4
  • Correction du démarrage de ChromeDriver avec l'indicateur whitelisted-ips sur macOS
  • Correction de SetTimeout pour accepter les formats pré-W3C et W3C
  • Capture d'écran de l'élément de prise fixe
  • Correction : ChromeDriver recherche également les binaires Chrome dans un chemin système
  • Correction de l'agrandissement de la fenêtre et du plein écran
  • Mise en œuvre de la fonctionnalité de relecture du journal. ( ne fonctionne pas encore pour Android ni le navigateur à distance)
  • Correction de certains codes d'erreur non conformes à la norme W3C
  • Correction du problème de gestion incorrecte de console.log avec plusieurs arguments
  • Correction de GetElementRect pour autoriser les doubles
  • Émulation tactile fixe

ChromeDriver 2.41

Compatible avec Chrome 67 à 69

Voici les modifications apportées :

  • Correction d'un problème lorsque ChromeDriver s'exécute avec l'option "whitelisted-ips"
  • Le port de débogage à distance est renvoyé dans les capacités.
  • Implémentation de l'obtention de la taille de la fenêtre sur Android
  • Amélioration des messages d'erreur de lancement de Chrome sur ordinateur
  • ChromeDriver échoue rapidement lorsqu'il ne parvient pas à démarrer les binaires Chrome
  • La valeur renvoyée par "Fermer la fenêtre" est conforme aux spécifications