Downloads

Frühere Chrome-Versionen

Hier finden Sie die ChromeDriver-Versionen, die frühere Chrome-Versionen unterstützen.

Weitere Informationen zum Auswählen der richtigen ChromeDriver-Version finden Sie auf der Seite Version Selection.

ChromeDriver 148

Diverse Fehlerkorrekturen

  • DOM-Zugriff: Ein Absturz wurde behoben, der beim Simulieren eines Schaltflächenklicks in einem iFrame auftrat, der selbst in einem geschlossenen Shadow-Root verschachtelt war. Das JavaScript, das zuvor zum Ermitteln der ID des übergeordneten Frame-Elements verwendet wurde, konnte nicht in geschlossene Shadow-Roots eindringen. Bei der neuen Implementierung wird das f.X.d.Y.e.Z-Format direkt verwendet, um den Frame aufzulösen (crrev.com/c/7594919, Fehler 469831357).
  • Sicherheit: Die Bereinigung von Chrome-Argumenten wurde verstärkt, um eine potenzielle Sicherheitslücke durch das Einfügen von Positionsargumenten zu verhindern (crrev.com/c/7695604, Fehler: 494464734).
  • Tests: Das kImplicitWait-Zeitlimit für FindElement(s)WhileNavigating-Tests in commands_unittest wurde bei der Ausführung unter AddressSanitizer (ASAN) erhöht. Das Standard-Zeitlimit von 3 Sekunden reichte nicht aus, damit die Wiederholungsschleife alle Mock-Fehler unter ASAN-Aufwand verarbeiten konnte, was zu Instabilität führte (crrev.com/c/7657276).

Interne Änderungen und Refaktorierungen

  • C++-Standards: Überflüssige Includes von base/functional/callback_forward.h in //chrome- und .cc-Dateien wurden ersetzt. Die Verwendung von callback.h wird erzwungen, wenn tatsächlich Callbacks verwendet werden (crrev.com/c/7200285, Fehler 40318405). logging::LoggingSettings wurde von base/logging.h in einen eigenen Header base/logging/logging_settings.h verschoben, um die Kompilierungseffizienz zu verbessern (crrev.com/c/7173024, Relanding crrev.com/c/7160150 nach dem Zurücksetzen crrev.com/c/7170750). Es wurden verschiedene IWYU-Fehler im Zusammenhang mit base/logging.h behoben (crrev.com/c/7730403, Fehler 499476145).
  • C++-Standards: Redundante count(key)-Prüfungen, gefolgt von Suchvorgängen, wurden durch effizientere find(key)-Iteratorzugriffe ersetzt (crrev.com/c/7705392, crrev.com/c/7693277, Fehler: 452950815). ThreadDelegate wurde über den Thread-Konstruktor eingefügt, um die Datenkapselung zu verbessern. Außerdem wurde eine Restartable-Option für Thread hinzugefügt, um Fälle zu berücksichtigen, in denen Threads neu gestartet werden müssen (crrev.com/c/7696887, Fehler: 40881604).
  • Speichersicherheit: Die Dateiebene #pragma allow_unsafe_buffers wurde in granulare UNSAFE_TODO()-Makros in chrome/ umgewandelt (crrev.com/c/7132241, Fehler: 409340989). IOBuffer->span().first() wurde zu IOBuffer->first() gekürzt (crrev.com/c/7159119).
  • Abhängigkeiten: Die crossbench-Abhängigkeit wurde eingeführt, wodurch Fehler beim Auffinden lokal erstellter ChromeDriver-Binärdateien unter macOS und Android behoben wurden (crrev.com/c/7673978).
  • Testen: Das module-Schema wurde in chromedriver_py_tests wieder aktiviert, nachdem die zugrunde liegende Build- und Testinfrastruktur korrigiert wurde (crrev.com/c/7707960).

ChromeDriver 147

Diverse Fehlerkorrekturen

  • Tests: Es wurde ein hermetischer Regressionstest hinzugefügt, um zu prüfen, ob ElementClick Klicks über ursprungsübergreifende iFrames mit Overlays korrekt verarbeitet, insbesondere in Szenarien mit Site-Isolation. So wird verhindert, dass Klicks fälschlicherweise an die eingebetteten Inhalte statt an das sichtbare Overlay weitergeleitet werden (crrev.com/c/7261984, Fehler 42321834, Fehler 42322220).

Interne Änderungen und Refaktorierungen

  • C++-Standards: Die URL-Decodierungsmodi und -Funktionen wurden umbenannt, um dem Google C++-Styleguide zu entsprechen. Dabei wurde DecodeURLMode in DecodeUrlMode und DecodeURLEscapeSequences() in DecodeUrlEscapeSequences() geändert (crrev.com/c/7593238). url::UrlEscapeDecoder wurde eingeführt, um die Verwendung der URL-Decodierung im gesamten Code zu vereinfachen (crrev.com/c/7610180). Überflüssige build/branding_buildflags.h-Includes aus //chrome-Dateien entfernt (crrev.com/c/7595125, Bug: 40318405). Die BUILDFLAG(IS_FUCHSIA)-Logik wurde aus //chrome entfernt, außer in ChromeDriver (crrev.com/c/5485913, Fehler: 41481724).
  • Speichersicherheit (Spanification): UNSAFE_TODO-Markierungen in ChromeDriver-Dienstprogrammen wurden behoben und zu sicheren, spanbasierten Implementierungen migriert (crrev.com/c/7562602, Fehler: 435317390).

ChromeDriver 146

Diverse Fehlerkorrekturen

  • Stabilität: Ein ChromeDriver-Absturz wurde behoben, der bei der Verarbeitung eines Befehls auftreten konnte, wenn das Fenster gleichzeitig geschlossen wurde (z.B. während des Wartens auf den Abschluss einer Navigation). Durch den Fix wird eine Sperre für das WebView-Objekt eingerichtet, um zu verhindern, dass es vorzeitig verworfen wird (crrev.com/c/7257074, Fehler 468228355).
  • Sicherheit: Für eingehende WebSocket-Verbindungen zum ChromeDriver-HTTP-Server wurde eine Origin-Header-Prüfung hinzugefügt, um potenzielles Cross-Origin-Hijacking zu verhindern (crrev.com/c/7538400, Fehler: 478783560).
  • Testen: testWebviewDetactedDuringClick wurde in den Filter für instabile Tests verschoben und wird in allen Läufen übersprungen, nicht nur im Headless-Modus (crrev.com/c/7545378, Fehler 481485821).

Interne Änderungen und Refaktorierungen

ChromeDriver 145

Neue Funktionen

  • Testen: Das run_py_tests.py-Testframework wurde aktualisiert, sodass deterministische String-Tests unterschiedlicher Länge (z.B. 53, 101 und 501 Zeichen) für die Elemente input, textarea und contenteditable akzeptiert werden. Dadurch wird die Regressionsabdeckung sichergestellt, sodass bei langen send_keys-Vorgängen keine Zeichen verloren gehen (crrev.com/c/7221410, Fehler 428116078).
  • Tests: Es wurde ein spezifischer Test für das HTML-Element <selectlist> hinzugefügt (crrev.com/c/7420729, Fehler: 342889200).

Diverse Fehlerkorrekturen

  • Screenshots: Die Skalierung von Element-Screenshots wurde rückgängig gemacht, da die WebDriver-Spezifikation keine Skalierung vorschreibt und sie nicht mit anderen Screenshot-Funktionen übereinstimmte (crrev.com/c/7409603, Fehler 42323022).
  • Tests: Fehler in testClientHintsDeviceNameIPhoneX und testClientHintsDeviceNameIPad wurden behoben, indem die ChromeDriver-Testerwartungen an die aktuellen korrekten Werte (für die Felder „platform“, „platformVersion“, „model“ und „mobile“) angepasst wurden, die im DevTools-Frontend eingeführt wurden (crrev.com/c/7408699, Fehler 474179501).

Interne Änderungen und Refaktorierungen

  • C++-Standards: Verschiedene Verwendungen von base::Contains() wurden in std::ranges::contains() in //chrome migriert (crrev.com/c/7411011, Fehler: 470391351), einschließlich notwendiger Formatierungsanpassungen (crrev.com/c/7247217). Stringparameter wurden in std::string_view umgestaltet, um unnötige Stringzuweisungen bei Verwendung von substr() zu vermeiden (crrev.com/c/7350716). Überflüssige <map>-Includes aus //chrome-Headern entfernt (crrev.com/c/7225838, Fehler 40318405). Die Reihenfolge der Includes in einigen Dateien wurde korrigiert (crrev.com/c/7366868). Die alten BodyAsStringCallbackDeprecated-Callbacks in SimpleURLLoader-Verwendungen wurden durch BodyAsStringCallback ersetzt, die std::optional anstelle von std::unique_ptr verwendet (crrev.com/c/7210000, Fehler: 40258809).
  • Tests: Die Konfiguration für den InfobarPrioritization-Feldversuch wurde wieder eingeführt. Dazu gehören Korrekturen, um Abstürze bei ChromeDriver-Browsertests zu verhindern, wenn ausstehende Infoleisten verarbeitet werden, die nicht der Ansichtshierarchie hinzugefügt wurden (crrev.com/c/7223590, Fehler: 447176374). Die Filterung nach Land und Sprache für die GLIC-Funktion wurde wieder eingeführt. Sie wurde zuvor aufgrund nicht zusammenhängender Testfehler zurückgesetzt (crrev.com/c/7245749, erneute Einführung crrev.com/c/7148759 nach dem Zurücksetzen crrev.com/c/7233767, Fehler: 454431875).

ChromeDriver 144

Neue Funktionen

  • Berechtigungen: Der Befehl SetPermission wurde aktualisiert, um der neuesten W3C-Spezifikation zu entsprechen. Dabei wird zusätzlich zur Quelle der obersten Ebene die URL des aktuellen Frames (eingebettete Quelle) verwendet. Dadurch werden Berechtigungen wie storage-access, die auf dem eingebetteten Kontext basieren, korrekt konfiguriert (crrev.com/c/7106801, erneutes Einreichen von crrev.com/c/7093216 nach dem Zurücksetzen crrev.com/c/7104484, Fehler: 384959114).
  • Tests: Der ChromeDriver-Test-Upload-Payload wurde um testMetadata (einschließlich des Testnamens) erweitert, um den Flakiness-Endorser bei Verwendung strukturierter Test-IDs zu unterstützen (crrev.com/c/7124354, Fehler: 456432041).

Diverse Fehlerkorrekturen

  • Target Lifecycle: Ein Fehler wurde behoben, bei dem ChromeDriver nicht mehr reagierte, wenn ein übergeordneter Frame getrennt wurde, während ein untergeordneter Frame auf eine Befehlsantwort wartete. ChromeDriver trennt jetzt explizit transitiv untergeordnete Frames, wenn ein übergeordneter WebViewImpl während der Befehlsverarbeitung gesperrt und als getrennt markiert wird (crrev.com/c/7080912, Fehler 438436830).
  • Fensterverwaltung: Das Minimieren verdeckter Fenster im Hintergrund wurde speziell für ChromeDriver-Sitzungen deaktiviert. Dadurch werden Probleme in WebDriver BiDi behoben, bei denen Tests fehlschlagen konnten, wenn der Browser ein Fenster fälschlicherweise als verdeckt einstufte und es drosselte (crrev.com/c/7128058, Fehler: 458027819).

Interne Änderungen und Refaktorierungen

  • C++-Standards: Überflüssige Includes von base/functional/callback_forward.h in //chrome-Dateien wurden entfernt und die Verwendung von callback.h wurde erzwungen, wenn tatsächlich Callbacks verwendet werden (crrev.com/c/7200285, Fehler 40318405)..cc logging::LoggingSettings wurde von base/logging.h in einen eigenen Header base/logging/logging_settings.h verschoben, um die Kompilierungseffizienz zu verbessern (crrev.com/c/7173024, Relanding crrev.com/c/7160150 nach dem Zurücksetzen crrev.com/c/7170750). Migrierte Verwendungen von base::HexEncode zur neueren base::HexEncodeLower (crrev.com/c/7103100, Fehler: 456472080).
  • Speichersicherheit (Spanifizierung): Die Unit-Tests WriteToPipe und WriteToPipeNoBestEffort in PipeBuilder und PipeConnection wurden migriert, um base::span zu akzeptieren. Dadurch wird die unsichere Pufferverwendung behoben (crrev.com/c/7090293, Fehler: 455758227). Die dateiweiten Makros #pragma allow_unsafe_buffers wurden in chrome/ in granulare Makros UNSAFE_TODO() umgewandelt (crrev.com/c/7132241, Fehler 409340989). IOBuffer->span().first() wurde zu IOBuffer->first() gekürzt (crrev.com/c/7159119).

ChromeDriver 143

Diverse Fehlerkorrekturen

  • Stabilität: Ein Use-After-Free-Absturz (UAF) in OverrideNetworkConditions wurde behoben. Der für die spätere Anwendung gespeicherte Rohzeiger wurde zwischen aufeinanderfolgenden Aufrufen freigegeben. Er wird jetzt richtig verwaltet (crrev.com/c/7047422, Fehler: 42323833).
  • Tests: Flaky Android ChromeDriver-Touch-Tests wurden durch die Verwendung der WaitForCondition API für eine zuverlässigere Synchronisierung behoben (crrev.com/c/6978928, Fehler: 42321861).
  • DSE Prewarm: Die Funktion Prewarm in ChromeDriver wurde standardmäßig über den Schalter --disable-features=Prewarm deaktiviert. So wird verhindert, dass vorab geladene Seiten die Testausführung und die Zielermittlung beeinträchtigen (crrev.com/c/7007072, Fehler: 431928370).

Interne Änderungen und Refaktorierungen

  • C++-Standards: ref_counted.h wurde in //chrome-Headern, in denen nur der Smartpointer verwendet wird, durch scoped_refptr.h ersetzt, um die Kompilierungseffizienz zu verbessern (crrev.com/c/7080753, Fehler 40245294). GURL-Accessoren wurden zu ihren Get*-Varianten migriert (z.B. GetSpec() anstelle von spec()), um die Stringzuweisung deutlich zu kennzeichnen und versehentliche Leistungseinbußen zu vermeiden (crrev.com/c/7002119, Fehler: 448174617).
  • Tests: Redundante Prüfmuster in devtools_client_impl_unittest.cc wurden mit ADD_FAILURE() entfernt (crrev.com/c/6998270). Es wurde ein Regressionstest für crbug.com/413382905 hinzugefügt (crrev.com/c/6879417).

ChromeDriver 142

Neue Funktionen

  • Diagnose: Der Status TERMINATION_STATUS_EVICTED_FOR_MEMORY wurde hinzugefügt, um Prozesse, die vom Browser proaktiv beendet wurden (um Speicher zu sparen), von Prozessen zu unterscheiden, die aufgrund von Fehlern wegen unzureichendem Speicherplatz abgestürzt sind. Derzeit verhält sich das identisch mit einem OOM-Absturz (Anzeige eines traurigen Tabs), schafft aber die Grundlage für eine zukünftige separate Verarbeitung (crrev.com/c/6991933, Fehler: 394092280).
  • Diagnose: Der WebDriver-Antwort wurde die Funktion goog:processID hinzugefügt, die die Hauptprozess-ID des Desktopbrowsers zurückgibt. Dadurch wird ChromeDriver an moz:processID von Firefox angepasst und die Bedienungshilfen-APIs der Testplattform werden unterstützt (crrev.com/c/5825307, Fehler 438884256).
  • Tests: Unterstützung für strukturierte Test-ID-Uploads zu ResultSink für die Python-Integrationstests von ChromeDriver hinzugefügt (crrev.com/c/6916708, Fehler: 418015486).

Diverse Fehlerkorrekturen

  • Diagnose: Das Verhalten von ChromeDriver beim normalen Beenden von Chrome wurde so geändert, dass keine verwirrende, generische Fehlermeldung mehr im Zusammenhang mit der Verwendung von user-data-dir ausgegeben wird. Es wird jetzt explizit darauf hingewiesen, dass die Instanz beendet wurde, und der Nutzer wird zu den ausführlichen Logs für den spezifischen Fehler weitergeleitet, der von Chrome ausgegeben wurde (crrev.com/c/6977507, Fehler: 42323434).
  • Initialisierung: Die Initialisierungsstruktur von ChromeDriver wurde aktualisiert, um mit den Änderungen in Selenium WebDriver v4.16.0 (crrev.com/c/6630600) kompatibel zu bleiben.
  • Android: Der Fehler CheckAppInstalled wurde in älteren Android-Versionen (älter als Android 11) behoben, in denen das Flag --user cur nicht vom Paketmanager unterstützt wird (crrev.com/c/6785949, Fehler: 433885051).
  • Tests: Ein Fehler wurde behoben, durch den IgnoreDuplicateNavs fälschlicherweise die standardmäßigen Funktionsschalter in ChromeDriver überschrieb. Die Funktion wurde für ChromeDriver-Sitzungen deaktiviert und die Switches::SetFromSwitches-Logik wurde korrigiert (crrev.com/c/6949166, Fehler 445332809).

Interne Änderungen und Refaktorierungen

  • C++-Standards: Mehrere eingestellte base::JSONWriter::Write()-Aufrufe wurden durch base::WriteJson() ersetzt. Das Verhalten, bei dem im Fehlerfall eine leere Zeichenfolge zurückgegeben wird, wenn der Rückgabewert nicht geprüft wurde, wurde beibehalten (crrev.com/c/6969134, crrev.com/c/6929101, Fehler: 443929217). Erforderliche explizite Einwilligung für nicht konforme JSON-Parsing-Optionen (z.B. Kommentare zulassen) in base::JSONReader::Read und base::JSONReader::ReadAndReturnValueWithError (crrev.com/c/6990988, crrev.com/c/6980533, Fehler: 446188265). Die dateiweiten #pragma allow_unsafe_buffers-Pragmas wurden nach der manuellen Spannenbildung entfernt (crrev.com/c/6778035, Bug: 409340989). Verwendungen des Makros LazyInstance mit Speicherlecks bereinigt (crrev.com/c/6781377, Fehler: 432815283). Fehlende Header für http_response_headers.h über IWYU hinzugefügt (crrev.com/c/6894196, Fehler: 40216326).
  • Speichersicherheit (Spanifizierung): Zahlreiche Zeiger im Verzeichnis chrome/ für Linux-Builds wurden automatisch spanifiziert. Außerdem wurden nicht schwerwiegende CHECKs hinzugefügt, wenn Größenparameter als redundant eingestuft wurden (crrev.com/c/6734592, Fehler: 431824299).
  • Testen: testDoesntCrashOnClosingBrowserFromAsyncScript wurde unter macOS vorübergehend deaktiviert (crrev.com/c/6995358, Fehler: 446461733). Rechtschreibfehler in Testmethodennamen mit „Certificates“ wurden behoben (crrev.com/c/6950683). Automatisch formatierte //chrome/test GN-Dateien (crrev.com/c/6789277, Fehler: 40760278).
  • FedCM: Die Funktion ShouldShowAccountsPassiveDialog wurde in IdentityDialogController eingeführt, um synchron zu prüfen, ob ein Kontodialogfeld angezeigt werden soll. Dadurch wird ein Absturz behoben, der mit asynchronen Prüfungen und der DevTools-Instrumentierung zusammenhängt (crrev.com/c/6780413, Fehler 425801332).
  • DSE Prewarm: Page.setPrewarmingAllowed wurde den Entwicklertools als kurzfristige Lösung hinzugefügt, um das Vorwärmen manuell zu aktivieren oder zu deaktivieren. Außerdem wurden zugehörige Tests korrigiert, damit sie richtig mit der primären Seite interagieren (crrev.com/c/6847287, Fehler 431928370). Die Funktion DSEPrewarm wurde in fieldtrial_testing_config.json für macOS und Windows aktiviert, nachdem die Instabilität behoben wurde (crrev.com/c/6951835, Fehler 431928370, Fehler 435621391). Hinweis: Der CDP-Befehl und die Aktivierung des Feldversuchs wurden beide zurückgesetzt, da sie funktionsgefährdende Änderungen für WebDriver-Nutzer waren, die unerwartete Ziele offenlegten bzw. andere Downstream-Probleme verursachten (crrev.com/c/6966133, crrev.com/c/6966161, Fehler: 445883308)).
  • Bereinigung: Die verbleibenden Verweise auf das nicht unterstützte WebLayer-Projekt im Android-Code wurden entfernt (crrev.com/c/6792520, Fehler: 40272607).

ChromeDriver 141

Neue Funktionen

  • Test: Unterstützung für das Flag --enable-per-test-tracing für run_wpt_tests.py hinzugefügt, um das Verhalten von run_web_tests.py zu berücksichtigen. Dadurch werden JSON-Trace-Ereignisse aus einem internen ChromeDriver-Puffer abgerufen und im Testverzeichnis gespeichert (crrev.com/c/6820247, Fehler: 434017035).

Diverse Fehlerkorrekturen

  • Diagnose: ChromeDriver hat seinen eigenen internen Stacktrace nicht mehr ausgegeben, wenn ein kTabCrashed-Fehler zurückgegeben wurde. So wird verhindert, dass Nutzer verwirrt werden, während der Absturz-Stacktrace des Renderers weiterhin in den Logs enthalten ist (crrev.com/c/6841669, Fehler 395131239).

Interne Änderungen und Refaktorierungen

  • C++-Standards: Potenziell unsichere memset-Aufrufe wurden in chrome/ durch die Standard-C++-Aggregatinitialisierung (instance = {}) ersetzt, um das Umgehen von Konstruktoren zu vermeiden und die Speichersicherheit zu gewährleisten (crrev.com/c/6875520, Fehler: 435317390). Fehlende #include-Direktiven für //base/time/time.h über IWYU hinzugefügt (crrev.com/c/6832689, Fehler 40216326). Die Pragma-Anweisungen für erzwungene unsichere Puffer wurden neu geschrieben (crrev.com/c/6828538).
  • Tests: Es wurde ein Regressionstest für crbug.com/413382905 (crrev.com/c/6879417) hinzugefügt.
  • Übergänge zwischen Ansichten: Der Fix für Übergänge zwischen Ansichten wurde wieder eingeführt. Dabei wurde die Arbeit, die vor dem Auflösen des „finished“-Promise ausgeführt wurde, aktualisiert. Dies geschah, nachdem sich ein früherer spekulativer Revert im Zusammenhang mit ChromeDriver-Testfehlern als falsch erwiesen hatte (crrev.com/c/6846765, Re-Landing crrev.com/c/6806850 nach Revert crrev.com/c/6808537).

ChromeDriver 140

Diverse Fehlerkorrekturen

  • Zielauswahl: Ein Problem wurde behoben, bei dem das Entwicklertools-Fenster mit der Hauptseite konkurrieren konnte, um als primäres Fenster ausgewählt zu werden, wenn Chrome mit --auto-open-devtools-for-tabs gestartet wurde. ChromeDriver schließt jetzt Ziele mit dem Präfix devtools:// bei der Bestimmung des primären Fensters explizit aus (crrev.com/c/6769505, Fehler: 427908560).
  • Zielauswahl: ChromeDriver hat den Mittelpunkt von Elementen im sichtbaren Bereich nicht mehr falsch berechnet, da die von übergeordneten Elementen auferlegte overflow:hidden-Beschneidung ignoriert wurde. Dadurch wird die Berechnung an die WebDriver-Spezifikation und andere PerformActions-Szenarien angepasst (crrev.com/c/6735230, Bug: 42322257).
  • Android: Die CheckAppInstalled-Funktion wurde für ältere Android-Versionen (vor Android 11) korrigiert, in denen das --user cur-Flag für den Paketmanager nicht unterstützt wird (crrev.com/c/6785949, Fehler: 433885051).
  • Tests: Es wurde ein Problem mit der chromedriver_py_tests-Testsuite behoben, das durch die Funktion DSEPrewarm verursacht wurde. ChromeDriver deaktiviert jetzt den Prewarm-Trigger, während ein CDP-Client angehängt ist, um unerwartete Zielanzahlen bei Tests zu verhindern (crrev.com/c/6764274, Fehler 423465927, Fehler 431928370).
  • Testen: Die Hinzufügung der ShouldShowAccountsPassiveDialog-Funktion zu IdentityDialogController (Teil von FedCM) wurde rückgängig gemacht, was zu einer Regression geführt hat (crrev.com/c/6780413, Fehler: 425801332).

Interne Änderungen und Refaktorierungen

ChromeDriver 139

Diverse Fehlerkorrekturen

  • Initialisierungsstruktur: Die ChromeDriver-Initialisierungsstruktur wurde aktualisiert, um mit Selenium WebDriver v4.16.0-Updates kompatibel zu bleiben (crrev.com/c/6630600).
  • Argumentparsing: Mehrere --js-flags-Argumente wurden zusammengeführt (ähnlich wie bei --enable-features), anstatt nur das letzte angegebene Argument zu verwenden. Dadurch wird die Benutzerfreundlichkeit beim Übergeben komplexer V8-Flags verbessert (crrev.com/c/6612042, Fehler 421941798).

Interne Änderungen und Refaktorierungen

  • Speichersicherheit (Spanifizierung): Die veralteten base::MakeStringPiece()-Verwendungen wurden in //chrome/test durch std::string_view ersetzt (crrev.com/c/6628089, Fehler 422940464). base/strings/string_view_util.h wurde eingefügt, wenn base::as_string_view() verwendet wird, um zukünftige Namespace-Migrationen vorzubereiten (crrev.com/c/6625024, Fehler: 423048781).
  • C++-Standards: Verbesserte IWYU-Konformität (Include What You Use) in //chrome durch explizites Einbinden von <vector> (crrev.com/c/6652818), base/notimplemented.h (und Entfernen von base/notreached.h, wenn nicht verwendet) (crrev.com/c/6655452, Fehler: 41493641), base/strings/string_util.h (crrev.com/c/6607646), base/strings/string_number_conversions.h (crrev.com/c/6593576) und Entfernen überflüssiger Einbindungen von base/debug/stack_trace.h (crrev.com/c/6622838).
  • Testen: Die Option --driver-logging wurde zu run_wpt_tests.py portiert, sodass das Skript ChromeDriver und Browser-stderr auch bei niedrigeren Ausführlichkeitsgraden ausgeben kann (crrev.com/c/6608138, Fehler: 421262910).
  • Tests: Zuvor deaktivierte ChromeDriver-Integrationstests wurden wieder aktiviert: Screenshot-Tests (testTakeElementScreenshot*) (crrev.com/c/6598797, Fehler: 42321815), Tests zum Schließen von Fenstern über JavaScript (testCloseWindowUsingJavascript*) (crrev.com/c/6598978, Fehler: 42321150) und Tests zur Fenstergröße (headless-shell) (crrev.com/c/6621336, Fehler: 42323661).
  • Tests: run_wpt_tests.py --stable wurde korrigiert, um die aktuelle stabile Version von Clank (Android) durch Parsen der APK zu identifizieren und zu verwenden. Außerdem wurde das Script aktualisiert, um die entsprechende ChromeDriver-Version aus Chrome for Testing (CfT) in ein temporäres Verzeichnis herunterzuladen, anstatt das Checkout zu verunreinigen (crrev.com/c/6635694, Fehler 402548382).
  • Build-Infrastruktur: Eine unnötige Build-Abhängigkeit von write_build_config.py wurde entfernt, indem Manifeste für android_resources()-Ziele nicht mehr zugelassen werden. Das Zusammenführen von Manifesten und die Benennung von R.java-Paketen werden jetzt durch spezielle Attribute verarbeitet (crrev.com/c/6625266, Fehler 413331591).
  • FedCM: Ein Finch-Konfigurations-Feature-Flag im Zusammenhang mit FedCM wurde korrigiert (crrev.com/c/6614137, Fehler: 421959289).

ChromeDriver 138

Neue Funktionen

  • Display-Funktionsverwaltung: Das ChromeDriver-Verhalten für Darstellungsbereichssegmente wurde aktualisiert, um einer aktuellen Entscheidung der CSS Working Group zu entsprechen. Es wird jetzt immer ein Array mit einem einzelnen Segment zurückgegeben, wenn ein faltbares Gerät flach verwendet wird oder für alle nicht faltbaren Geräte. Dies entspricht dem Verhalten von Media-Anfragen und verringert das Risiko von Fingerprinting (crrev.com/c/6469455, Fehler 414430842).
  • Einstellungen und lokaler Status (Android): Unterstützung für die Funktionen localState und prefs beim Ausführen von ChromeDriver auf Android-Geräten wurde hinzugefügt. Dazu ist ADB erforderlich und es wird ein benutzerdefiniertes user-data-dir-Flag benötigt. Derzeit wird der Status mit Standardvorlagen initialisiert (crrev.com/c/6397155, Fehler 406427226).

Diverse Fehlerkorrekturen

  • Stabilität: Ein ChromeDriver-Absturz unter macOS wurde behoben, der auftrat, wenn ein Nutzer das Dialogfeld für die Ersteinrichtung über die Schaltfläche „Weiter“ geschlossen hat. Der Absturz wurde durch das Überschreiben eines kTargetDetached-Fehlerstatus und den Versuch, auf einen ungültigen WebView zuzugreifen, verursacht (crrev.com/c/6538867, Fehler: 410599467).
  • Leistungstests: Der crossbench-Test-Runner unter Windows hat jetzt einen Fehler behoben, durch den Bots fälschlicherweise versucht haben, das ChromeDriver-Binärprogramm über einen veralteten ../Release_x64-Pfad zu finden, wenn --browser=release_x64 übergeben wurde. Dadurch wurde auf das Herunterladen eines älteren Binärprogramms zurückgegriffen, anstatt den lokalen Build zu verwenden (crrev.com/c/6502134).

Interne Änderungen und Refaktorierungen

  • Speichersicherheit (Spanifizierung): Nicht geprüfte Zeiger in WebSocket::OnReadDuringHandshake und WebSocket::OnReadDuringOpen wurden durch base::span ersetzt, wodurch unsafe-buffer-usage-Warnungen behoben wurden (crrev.com/c/6557346, Fehler: 354307328). Es wurden unnötige #pragma allow_unsafe_buffers-Pragmas in chrome/test/chromedriver entfernt, die nach anderen Migrationen nicht mehr erforderlich waren (crrev.com/c/6503154, Fehler 414858406).
  • C++-Standards: Überflüssige #include "url/gurl.h"- und #include <queue>-Anweisungen in chrome/-Headern wurden entfernt und Vorwärtsdeklarationen hinzugefügt, um die Kompilierungszeiten zu verbessern (crrev.com/c/6578272, crrev.com/c/6570349, Fehler 40318405).
  • API-Migration: RSAPrivateKey wurde zu crypto::PrivateKey und SHA256HashString zu crypto::Sha256 migriert. Dadurch wurde ein veralteter Fall für die Fehlerbehandlung entfernt, da neue APIs zur Schlüsselgenerierung unfehlbar sind (crrev.com/c/6490294, Fehler: 372283556).
  • Testen: Das Attribut OwnContributionEstimate wurde den Automatisierungsbefehlen der Compute Pressure API (sowohl CDP- als auch testdriver-Implementierungen) hinzugefügt (crrev.com/c/6373001, Fehler: 402033762).
  • Tests: Die Integrationstests, mit denen ClearDisplayFeatures auf CFT-Bots (Continuous Integration) geprüft wird, wurden korrigiert. Dazu wurden die Zusicherungen vereinfacht, um zu prüfen, ob die Viewport-Segmente auf die Standard-Viewport-Größe zurückgesetzt werden (crrev.com/c/6535067, Fehler: 417195296).
  • Tests: Die Zeitüberschreitungen für Protected Audience WebDriver-Tests wurden erhöht, um die Instabilität auf langsameren CI-Bots zu beheben (crrev.com/c/6494277).

ChromeDriver 137

Neue Funktionen

  • Verwaltung von Displayfunktionen: Es wurden ChromeDriver-Befehle zum Emulieren und Löschen von Displayfunktionen hinzugefügt, um die Automatisierungsanforderungen für die Viewport Segments APIs (CSS und JS) zu erfüllen. So können Entwickler Falt- oder Scharnierszenarien auf Geräten mit zwei Displays oder faltbaren Geräten programmatisch testen (crrev.com/c/6368674, Fehler 40137084).
  • BiDi: ChromeDriver wurde aktualisiert, sodass der BiDi-Mapper standardmäßig in einem verborgenen Ziel ausgeführt wird. Dadurch wird verhindert, dass die data:,-Seite des Mappers die Testausführung und Sichtbarkeit beeinträchtigt. Um den Mapper zu debuggen, können Clients das Flag --debug-bidi-mapper übergeben, um ihn in einem sichtbaren Tab auszuführen (crrev.com/c/6441064, Relanding crrev.com/c/6433672 nach dem Zurücksetzen crrev.com/c/6439633, Fehler: 402339952).

Diverse Fehlerkorrekturen

  • BiDi: ChromeDriver hat nicht mehr fälschlicherweise die gesamte Browsersitzung geschlossen, wenn BiDi-Befehle (z. B. browsingContext.close) verarbeitet wurden und das Ziel, das von anderen CDP- oder BiDi-Sitzungen erstellt wurde, nicht mehr nachvollziehbar war. Jetzt werden explizit Tabs der obersten Ebene synchronisiert, bevor der Browser beendet wird (crrev.com/c/6440293, Fehler: 42323838).
  • BiDi: ChromeDriver entspricht der Upstream-WebDriver-BiDi-Spezifikation, indem die goog:channel-Funktion entfernt wird, wenn sie als leerer String übergeben wird. Sie wird also genauso behandelt wie ein fehlender Channel (crrev.com/c/6438865, Fehler: 409282307).
  • Eingabe: Ein Problem wurde behoben, bei dem Touch- und Zeigerereignisse fehlgeschlagen sind oder sich falsch verhalten haben. Dazu wurde ChromeDriver aktualisiert, um gebrochene (Gleitkomma-)X- und ‑Y-Koordinaten in Zeigerbewegungsbefehlen zu unterstützen (crrev.com/c/6440834, Fehler 409684333).
  • Zielauswahl: Es wurde verhindert, dass PDF-OOPIFs (Out-of-Process-iFrames), die in Gastansichten geöffnet wurden (wenn die Funktion PdfOopif deaktiviert ist), in die Liste der Ziele der obersten Ebene aufgenommen werden. Die Filterlogik wurde erweitert, um Ziele mit dem Präfix chrome-extension:// (crrev.com/c/6383500, Fehler: 396611138) richtig auszuschließen.

Interne Änderungen und Refaktorierungen

  • C++-Standards: Die Änderung zur Verwendung von std::string_view für Dateinamen in LogMessage und Trace-Ereignissen wurde wieder eingeführt. Dadurch wurden die Probleme mit der Verarbeitung von nullterminierten Strings behoben, die zu früheren Reverts geführt hatten (crrev.com/c/6430129, Relanding crrev.com/c/6395097, Relanding crrev.com/c/6387020 nach Revert crrev.com/c/6383699).
  • C++-Standards: Modernisierte Environment::GetVar-Aufrufe in //chrome, um die API mit Rückgabewert anstelle von Out-Parametern zu verwenden (crrev.com/c/6417343, Fehler: 400758498).std::optional
  • C++-Standards: Windows-spezifische Handle-Helfer wurden aus win_util.h in einen dedizierten windows_handle_util.h-Header refaktoriert, um Probleme mit zirkulären Abhängigkeiten zu vermeiden (crrev.com/c/6418805, Fehler: 406023316).
  • Tests: Es wurde ein Android-spezifischer Browser-Domain-Handler hinzugefügt und die Browser.getWindowForTarget API implementiert, um Tests zur Erstellung von Android-Fenstern zu unterstützen (crrev.com/c/6427605, Fehler 404932444).
  • Tests: Es wurde ein Problem behoben, das dazu führte, dass macOS-Tests aufgrund von Erweiterungen, die zu lange zum Initialisieren benötigten, nicht zuverlässig ausgeführt wurden (crrev.com/c/6423229, Fehler: 407804497).
  • Testen: Die parallele Erstellung von user-data-dir in testBrowserWithUsedUserDataDir wurde bei der Ausführung für chrome-headless-shell vorübergehend deaktiviert, da sie mit der exklusiven Sperrung unter macOS in Konflikt stand (crrev.com/c/6470455, Fehler: 411407649, Fehler: 380903149).
  • Erweiterungen: Die Chrome-Tests wurden aktualisiert, damit sie bestanden werden, wenn der ExtensionManifestV2Unsupported-Feldversuch aktiviert ist. Dies ist ein grundlegender Schritt. Der Test selbst bleibt jedoch deaktiviert, bis Updates in anderen Repositories erfolgen (crrev.com/c/6415997, Fehler: 367395349). (Hinweis: Ein vorheriger Versuch, diesen Testzeitraum über die Konfiguration zu aktivieren, wurde rückgängig gemacht crrev.com/c/6397497, wodurch crrev.com/c/6358257 rückgängig gemacht wurde.)
  • Abhängigkeiten: Die catapult-Abhängigkeit wurde manuell aktualisiert und die zugehörigen pydeps-Dateien und devil_util-Verweise wurden aktualisiert (crrev.com/c/6480814, crrev.com/c/6466865, relanding crrev.com/c/6406098 nach dem Zurücksetzen crrev.com/c/6448910, Fehler: 397459590).

ChromeDriver 136

Neue Funktionen

  • Browser-Lebenszyklus: Es wurde eine Chrome-spezifische Funktion quitGracefully hinzugefügt, die ChromeDriver dazu zwingt, den Browser ordnungsgemäß zu beenden (mit Browser.close oder SIGTERM) anstelle des Standardwerts SIGKILL. Dadurch haben Debugger wie rr Zeit, ihre Aufzeichnungen zu sichern, bevor der Prozess beendet wird (crrev.com/c/6322538, erneutes Einfügen von crrev.com/c/6269180 nach einer kurzen Rücksetzung crrev.com/c/6320536, Fehler 339644807).
  • Testen: Das run_wpt_tests.py --wrapper-Argument wurde durch Generieren eines temporären Wrapper-Skripts verkabelt, das dem Browser-Binärprogramm den Debugger (z.B. rr) und seine Argumente voranstellt. Dadurch wird das Problem umgangen, dass ChromeDriver das Binärprogramm nicht direkt ersetzen kann, wenn args als Schalter verarbeitet werden (crrev.com/c/6271108, Fehler: 339644807).
  • Testen: Die Übersetzung wurde in TranslateEnabledTest über die Einstellung aktiviert, um eine Testumgebung zu unterstützen, in der ChromeDriver den Browserprozess verwaltet und die neue --remote-debugging-port-Einschränkung umgeht, wenn --user-data-dir implizit ist (crrev.com/c/6354089, Fehler 327797500).
  • DevTools: Unterstützung für den DevTools-Multi-Instanz-Modus hinzugefügt, um einen neuen Tab in einem anderen Fenster unter Android zu öffnen (crrev.com/c/6352169, Fehler: 401269942, Fehler: 382183406).

Diverse Fehlerkorrekturen

  • Zielauswahl: Ein Problem wurde behoben, bei dem PDF-OOPIFs (Out-of-Process-iFrames), die in Gastansichten geöffnet wurden, nicht aus der Liste der Ziele auf oberster Ebene herausgefiltert wurden, wenn die Funktion PdfOopif deaktiviert war. Der Filter wurde um das Präfix chrome-extension erweitert. Dadurch wird der Fehler behoben und die Abdeckung für MV3-Chrome-Erweiterungen, die Tabs erstellen, wird berücksichtigt (crrev.com/c/6383500, Fehler: 396611138).
  • Zielauswahl: Es wurde ein Regressionsfehler behoben, der dazu führte, dass der Befehl getWindowHandles() bei der Ausrichtung auf verpackte Chrome-Apps mit dem Status connection refused fehlschlug (crrev.com/c/6317161, Fehler: 396622746).

Interne Änderungen und Refaktorierungen

ChromeDriver 135

Neue Funktionen

  • BiDi: Der BiDi-Mapper wurde aktualisiert, sodass er ChromeDriver-Berechtigungen übernimmt, wenn --enable-unsafe-extension-debugging angegeben ist. So können WebDriver BiDi-Clients Erweiterungen effektiv testen, für die Berechtigungen erforderlich sind, die normalerweise vom WebDriver-Client gehalten werden (crrev.com/c/6288627, Fehler: 393500934).

Diverse Fehlerkorrekturen

  • Tests: Die Erwartungen für mehrere WDSpec-Tests, die zuvor als fehlgeschlagen markiert waren, wurden wieder aktiviert und aktualisiert. Dadurch wird die Abdeckung der Spezifikationskonformität für bestandene Tests wiederhergestellt (crrev.com/c/6310420).

Interne Änderungen und Refaktorierungen

  • Bereinigung: Alle Spuren von Lacros (einschließlich IS_CHROMEOS_LACROS und zugehöriger Testdaten) wurden aus chrome/test/ entfernt, da Lacros eingestellt wird und IS_CHROMEOS standardisiert wird (crrev.com/c/6284446, Fehler: 354842935).
  • Bereinigung: Alle Spuren des md5sum-Dienstprogramms wurden entfernt, nachdem es durch devil_util ersetzt wurde. Außerdem wurden Legacy-Build-Abhängigkeiten bereinigt (crrev.com/c/6309939, Fehler: 397452007).
  • C++-Standards: Der Namespace chrome:: wurde aus ResultCode und IsNormalResultCode() entfernt und in den globalen Namespace verschoben. Außerdem wurden veraltete ChromeOS-Startimporte entfernt (crrev.com/c/6196899, Fehler 41050580).
  • Speichersicherheit: Ein std::lower_bound-Aufruf in ChromeDriver wurde durch die Nutzung von std::ranges::lower_bound vereinfacht (crrev.com/c/6223172, Fehler: 392116519). unsafe_libc_call-Warnungen für anfangs identifizierte nicht konforme Dateien wurden unterdrückt, um die zukünftige Durchsetzung vorzubereiten (crrev.com/c/6187925, Fehler: 390223051). Der Rückgabewert von std::to_array wurde als constexpr markiert, um die Sicherheit und die Kompilierzeitbewertung zu verbessern (crrev.com/c/6298909).

ChromeDriver 134

Neue Funktionen

  • Eindämmung von Bounce-Tracking (DIPS): Die ChromeDriver-Unterstützung für die Eindämmung von Bounce-Tracking wurde reaktiviert und nutzt den Befehl RunBounceTrackingMitigations. Der Integrationstest wurde so umstrukturiert, dass separate Seiten verwendet werden. Dadurch wird sichergestellt, dass zustandsbehaftete Absprünge korrekt erfasst werden, bevor der Befehl ausgeführt wird. Diese Funktion unterstützt die nav-tracking-mitigations-Spezifikation und wird in //chrome implementiert (crrev.com/c/4935955, Fehler 1474656). Hinweis: Ursprünglich in crrev.com/c/4873672 hinzugefügt und später zurückgesetzt.
  • BiDi: ChromeDriver wurde aktualisiert, um standardmäßige WebDriver BiDi-Erweiterungseigenschaften mit dem Präfix goog: zu verwenden. Dies entspricht den Upstream-Änderungen in chromium-bidi. Die alte Property channel ist nicht mehr zulässig (crrev.com/c/6179410).
  • Windows: Dem chromedriver.exe-Binärprogramm unter Windows wurde eine Versionsressource hinzugefügt (crrev.com/c/6114586, Fehler: 385300323).

Diverse Fehlerkorrekturen

  • MPArch/Targets: Es wurde ein Regression behoben, bei dem Chrome-Erweiterungsziele (chrome-extension://) während der primären Zielbestimmung unter ChromeOS fälschlicherweise erkannt und angehängt wurden, was dazu führte, dass nachfolgende Befehle (z. B. zur Navigation) fehlschlugen. Erweiterungsziele werden in dieser ersten Phase jetzt richtig übersprungen (crrev.com/c/6183202, Fehler: 385241097).
  • MPArch/Targets: Ein weiterer Fehler wurde behoben, bei dem Tab-Ziele für Erweiterungs-background_pages nicht richtig aus Webansichten der obersten Ebene herausgefiltert wurden, wenn die Unterstützung von Erweiterungszielen deaktiviert war (crrev.com/c/6160774, Fehler: 385731198).
  • MPArch/Navigation: Es wurde ein Problem behoben, bei dem während einer MPArch-Aktivierung vorübergehend keine aktive Seite an einen Tab angehängt sein konnte. Dadurch wurde ChromeDriver fälschlicherweise als Fehlerstatus angezeigt. ChromeDriver wartet jetzt, bis der Tab eine neue Seite aufruft und die Navigation abgeschlossen ist, bevor der Status aufgelöst wird (crrev.com/c/6177606).
  • Log-Verarbeitung: Ein Absturz (DCHECK-Fehler in base::Value()) wurde behoben, der durch das falsche Abschneiden von Log-Strings mit Multibyte-Zeichen verursacht wurde. Die Logik wurde aktualisiert, um die UnicodeString-Grenzerkennung anstelle einfacher std::string-Längenprüfungen zu verwenden. So werden gültige Codepunkte sichergestellt (crrev.com/c/6210809, Fehler 367752739).
  • Tests: Die meisten WPTs für das Prerendering (mit Ausnahme einiger mit bekannten API-Problemen) wurden von content_shell zu headless_shell migriert, da sie nach dem kürzlichen MPArch-Refactoring mit ChromeDriver korrekt ausgeführt werden können (crrev.com/c/6168830, Fehler 42323502, Fehler 366257368).

Interne Änderungen und Refaktorierungen

ChromeDriver 133

Neue Funktionen

  • Architektur: ChromeDriver wurde umgestaltet, um die Architektur mit mehreren Seiten (Multiple Page Architecture, MPArch) und Tab-Ziele zu unterstützen. WebViewImpl wird jetzt über AutoAttach mit Tab-Zielen verbunden. Bei Befehlen, die zuvor eine Seite aufgerufen haben, wird jetzt nach der aktiven Seite auf einem Tab gesucht. Diese Änderung ermöglicht die Überprüfung von Erweiterungs-Hintergrundseiten, die jetzt über die enable_extension_targets-Funktion angesprochen werden können (Erweiterungsziele werden standardmäßig übersprungen) (crrev.com/c/5961156, Fehler: 379767670, Fehler: 42323502). Es wurde ein Regressionsfehler behoben, bei dem chrome-extension://-URL-Seiten fälschlicherweise als Erweiterungsziele aufgenommen wurden. Die Auswahl wurde auf type=background_page zurückgesetzt (crrev.com/c/6093588, Fehler 383141569). enableExtensionTargets wurde in die Chrome-Optionen verschoben und ist keine Funktion der obersten Ebene mehr (crrev.com/c/6093032).
  • Klassisch: Die Unterstützung für Referenzen mit mehreren Schlüsselelementen wurde wieder eingeführt. Diese undokumentierte Funktion, die häufig zum Erstellen von Referenzen verwendet wird, die sowohl mit W3C- als auch mit Nicht-W3C-Modi kompatibel sind, wird jetzt offiziell unterstützt und durch Integrationstests abgedeckt (crrev.com/c/6063257, Fehler: 379584343).

Diverse Fehlerkorrekturen

  • Stabilität: ChromeDriver blockiert nicht mehr unbegrenzt bei der Verarbeitung des Befehls browsingContext.close. Durch die Verwendung eines anderen Mechanismus, um festzustellen, ob der Browser geschlossen werden muss, kann ChromeDriver jetzt beforeunload-Aufforderungen richtig verarbeiten, ohne dass es zu Verzögerungen kommt (crrev.com/c/6080431, Fehler 42323838, Fehler 379049702).
  • Navigation: Ein Fehler wurde behoben, bei dem eine Dummy-Seite mit der URL about:blank?test zu einem Stillstand führte. Die Heuristik, mit der ein nicht reagierendes neues Fenster (baseURL==about:blank und documentURL!=about:blank) erkannt werden soll, verarbeitet diese Query-String-URLs jetzt korrekt als Sonderfall (crrev.com/c/6038039, Fehler: 377410086).
  • Navigation: Es wurde Logik hinzugefügt, um Befehle, die mit einem AbortedByNavigation-Fehler fehlschlagen, noch einmal auszuführen. ChromeDriver versucht den Befehl jetzt mehrmals, bevor er mit einem Standardfehler Timeout (crrev.com/c/6012427, Fehler: 42323825) abbricht.
  • Diagnose: Der Fehler kTargetCrashed wurde direkt über NavigationTracker weitergeleitet. Wenn ein Ziel während der Navigationserkennung abstürzt, wird dem Nutzer jetzt dieser spezifische Fehler anstelle eines allgemeinen Timeouts angezeigt. Das verbessert die Diagnose (crrev.com/c/6032612, Fehler: 377410086).
  • Android: Die Suche nach Tab-Zielen in chrome_android_impl.cc wurde korrigiert (crrev.com/c/6110492, Fehler: 384781876).
  • Tests: Die Instabilität bei mehreren Tests zur Fenstergröße auf win11-arm64 wurde behoben (z.B. beim Klicken auf verdeckte Elemente). Die Tests fragen jetzt die Größe des inneren Fensters nach einem Größenänderungsvorgang wiederholt ab, bis eine positive Höhe registriert wird. Dabei wird berücksichtigt, dass das Fenster möglicherweise langsam neu gezeichnet wird (crrev.com/c/6012658, Fehler: 378470046).
  • Tests: Es wurden mehrere Flakes in Integrationstests behoben, indem generische Python-Verbindungsfehler WebSocketConnectionClosedException zugeordnet wurden, um die Fehlerbehandlung zu vereinfachen (crrev.com/c/6054134). Außerdem wurden Race-Bedingungen vermieden, indem SendCommand anstelle von PostCommand verwendet wurde, wenn sofortige Nebeneffekte erwartet werden (crrev.com/c/6054137). Die Abhängigkeit von sofortigen Auswirkungen von ExecuteScript wurde durch zuverlässigere Navigationserkennungsmechanismen ersetzt (crrev.com/c/6063040, Fehler: 42323825).
  • Testing: Die Entfernung des Funktions-Flags FedCmIdpSigninStatus wurde rückgängig gemacht, da sie zu Problemen geführt hat (crrev.com/c/6082405, Rückgängigmachung von crrev.com/c/6078693, Fehler: 384866916, Fehler: 381211734).
  • Tools: Unterstützung für den Befehl Print im log_replay-Skript wurde hinzugefügt (crrev.com/c/6010809, Fehler: 378451938).

Interne Änderungen und Refaktorierungen

  • C++-Standards: Das Mojo.InvalidUTF8String-Histogramm wurde entfernt, was die Bereinigung öffentlicher Mojo-Header und nachfolgender IWYU-Kaskaden ermöglichte (crrev.com/c/6133861, Fehler 40509710, Fehler 386793084).
  • C++-Standards: Zuweisungen in WaitableEvent::Wait() wurden vermieden, indem von std::list zu base::circular_deque gewechselt wurde (crrev.com/c/6097198).
  • C++-Standards: Standardmäßige benutzerdefinierte leere Konstruktoren und Destruktoren im gesamten chrome/-Code, wo möglich (crrev.com/c/6101911, crrev.com/c/6056220, Fehler: 381119547).
  • Speichersicherheit (Spanifizierung): C-Arrays wurden im Rahmen der Bemühungen zur Behebung von -Wunsafe-buffer-usage-Warnungen (crrev.com/c/6043879, Fehler: 378069401) von std::array nach chrome/ migriert. Strikte size_t-Verwendung in Spannenfunktionen implementiert (crrev.com/c/6026238, crrev.com/c/6020621).
  • Tests: Das Upstreaming von {ref,crash}tests im Vollbildmodus wurde zu wpt_internal/ zurückgeführt, da testdriver sie jetzt unterstützt (crrev.com/c/6088404).
  • Tests: Der Fehler wptrunner für iOS wurde behoben. Der ChromeDriver-Wrapper wird jetzt korrekt gefunden, wenn nicht standardmäßige Ausgabeverzeichnisse verwendet werden (z. B. //out/*-ios-wpt-fyi-rel/). Dazu wurde --build-directory korrekt eingebunden (crrev.com/c/6014940, Fehler 374199289, Fehler 355218109).
  • Tests: Der testBrowserCrashWhileWaitingForEvents-Integrationstest wurde hinzugefügt, um Regressionsfälle zu demonstrieren, in denen schwerwiegende Fehler von Clients unbemerkt bleiben (crrev.com/c/6025145, Fehler: 379049702).
  • Tests: Bestimmte WPTs, die bei der Ausführung unter headless_shell in Kombination mit ChromeDriver abstürzen, wurden unterdrückt, um die Builder zu stabilisieren (crrev.com/c/6032163, Fehler: 377410086).

ChromeDriver 132

Neue Funktionen

  • Tests: Unterstützung für die Befehlszeilenparameter repeat und retry-limit für ChromeDriver-Integrationstests hinzugefügt und den Standardargumenten isolated-script-test-repeat und isolated-script-test-launcher-retry-limit zugeordnet (crrev.com/c/5938195, Fehler: 374681919). Bei lokal ausgeführten Tests (nicht CI) wurde der Standardwert für retry-limit in 0 geändert (crrev.com/c/5953326, Fehler: 374681919).
  • WebSockets: WebSocketConnection und zugehörige Klassen in EmbeddedTestServer wurden implementiert, sodass WebSocket-bezogene Tests von SpawnedTestServer migriert werden können. Dazu gehören die Einrahmung gemäß dem Protokoll und die vereinfachte Handler-Registrierung (crrev.com/c/5849732, Fehler 40812029).

Diverse Fehlerkorrekturen

  • Stabilität: Ein ChromeDriver-Absturz wurde behoben, der auftreten konnte, wenn ein Klickbefehl dazu führte, dass der Browser geschlossen wurde. Dazu wurde der in früheren Refactorings eingeführte Fehlerstatus kTargetDetached richtig behandelt (crrev.com/c/5934524, Fehler: 42323264).
  • Stabilität: Ein zeitweiliger Absturz im testClickNavigateRemoteToLocal-Integrationstest auf Mac ARM64 wurde behoben, indem eine Race-Bedingung aufgelöst wurde (crrev.com/c/5975526, Fehler: 375971185).
  • Navigation: Die Befehle GoBack und GoForward wurden korrigiert. Sie sind zuvor fehlgeschlagen, wenn Page.getNavigationHistory aufgerufen wurde, während das Dokument aus einem aktiven Zustand wechselte (was auf eine laufende Navigation hinweist). ChromeDriver wiederholt den Befehl in diesem Szenario jetzt korrekt (crrev.com/c/6011739, Fehler 378433873).
  • Ausführung von Scripts: Es wurde dafür gesorgt, dass Scripts, die eine Navigation auslösen oder ein Fenster schließen, korrekt einen Standardfehler vom Typ ScriptTimeout zurückgeben, wenn die Browserseite kein Ergebnis garantiert. Der Nutzer wird aufgefordert, mehrdeutige Teststrukturen zu vermeiden (crrev.com/c/5934265, Fehler: 372883701).
  • Skriptausführung: Ein Problem wurde behoben, bei dem die Protokollwiedergabefunktion mit dem Fehler „unexpected command response“ (crrev.com/c/5961142, Fehler: 42323342) fehlgeschlagen ist.
  • Fehlercodes: Die Fehlerbehandlung von ChromeDriver wurde korrigiert, sodass nicht mehr alle Ausnahmen mit der Property „code“ in einen generischen „JavaScript-Fehler“ eingeschlossen werden. So werden Standardfehler wie „stale element reference“ (aus call_function.js) und „invalid element state“ (aus der Selenium Atoms-Funktion CLEAR) korrekt an den Nutzer weitergegeben (crrev.com/c/5937893, Fehler: 42323409). Verbesserte Fehlerbehandlung in GetElementTagName, um fehlende Informationen zum Tagnamen korrekt als „object is not an Element“ (crrev.com/c/5929087) zu interpretieren.
  • BiDi: Es wurde ein Problem behoben, bei dem BiDi-Sitzungen nicht initialisiert werden konnten, wenn ein benutzerdefiniertes Nutzerprofil verwendet wurde. Die geladene Seite des benutzerdefinierten Profils kann verhindern, dass der BiDiMapper gestartet wird. ChromeDriver sorgt jetzt dafür, dass auf dem ersten Tab immer data:, geladen wird, um eine saubere Grundlage für den Mapper zu schaffen (crrev.com/c/5960656, Fehler 366886096).
  • Inkognitomodus: Ein Fehler wurde behoben, der verhinderte, dass ChromeDriver im Inkognitomodus neue Tabs erstellt (crrev.com/c/5952980, Fehler: 42323352).
  • Tests: Die Instabilität im testScriptNavigateRemoteToLocal-Integrationstest wurde behoben (Fehlerrate: 8,33 %). Außerdem wurden C++-Integrationstests hinzugefügt, um den Fix für die Race-Bedingung zu reproduzieren und zu überprüfen (crrev.com/c/6010867, Fehler: 378387680).
  • Tests: Wir haben zahlreiche zuvor fehlerhafte Integrationstests auf Mac (testWindowMinimize) und Windows (ChromeDownloadDirTest.testFileDownloadAfterTab, InvalidCertificateTest.*) sowie global (testShadowDomFindElement, Element-Screenshot-Tests) wieder aktiviert. Flaky css/css-scrollbars/ WPT-Tests wurden vorübergehend von der Headless Shell zurück zur Content Shell verschoben (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).

Interne Änderungen und Refaktorierungen

  • BiDi: Die chromium-bidi-Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Upstream-Korrekturen und Protokollupdates zu berücksichtigen (crrev.com/c/5953339, crrev.com/c/5865478, Fehler 4226). Hinweis: Eine Mapper-Aktualisierung wurde aufgrund von WPT-Fehlern kurzzeitig zurückgesetzt und anschließend wieder eingeführt (crrev.com/c/5961113).
  • Architektur: Die Verwendung des threadlokalen Sitzungsobjekts in ChromeDriver wurde minimiert, um Fehler durch die gemeinsame Nutzung von Status zwischen Tests zu verhindern und die explizite Sitzungsverwaltung zu vereinfachen (crrev.com/c/5978486, Fehler: 42323555). Die C++-Integrationstests wurden so umgestaltet, dass eine gemeinsame Testvorrichtung verwendet wird (crrev.com/c/5971474, Fehler 42323555).
  • Bereinigung: Veraltete Workarounds, die sich auf den „alten monitorlosen“ Modus beziehen, wurden entfernt, da der alte chrome-headless-shell-Code nicht mehr in Chrome vorhanden ist (crrev.com/c/5961602, Fehler: 42323387).
  • Bereinigung: Die ungenutzte Datei java_tests.txt wurde entfernt. Sie war ein Überbleibsel der zuvor entfernten ChromeDriver-Akzeptanztests (crrev.com/c/5970994, Fehler: 357737793).
  • Tests: Es wurde ein C++-Integrationstest hinzugefügt, um zu prüfen, ob ChromeDriver nicht fälschlicherweise parallele Sitzungen mit demselben user-data-dir erstellt oder URLs zwischen Sitzungen weitergibt, was zu Instabilität führen könnte (crrev.com/c/5961137, Fehler: 375312517).
  • Tests: Es wurde dafür gesorgt, dass temporäre ChromeDriver-Instanzen, die durch Integrationstests gestartet werden, so schnell wie möglich heruntergefahren werden, um Ressourcen freizugeben (crrev.com/c/5997970, Fehler: 375974725).

ChromeDriver 131

Neue Funktionen

  • BiDi: Die chromium-bidi-Mapper-Abhängigkeit wurde auf Version 0.8.0 aktualisiert. Sie enthält die neuesten Protokollaktualisierungen und Fehlerkorrekturen (crrev.com/c/5899240, crrev.com/c/5865478, Fehler 4226).
  • DOM-Zugriff: Unterstützung für geschlossene Shadow Roots im Befehl GetElementShadowRoot hinzugefügt. Bisher wurde bei diesem Befehl der Fehler NoSuchShadowRoot zurückgegeben, wenn versucht wurde, auf einen geschlossenen Shadow-Root zuzugreifen (crrev.com/c/5923865, Fehler: 372834222).
  • DOM-Zugriff: Unterstützung für Fenster- und Frame-IDs implementiert, sodass Verweise auf Fenster oder Frames (einschließlich OOP-Iframes) aus ausgeführten Skripts zur weiteren Dereferenzierung zurückgegeben werden können (crrev.com/c/5890437, crrev.com/c/5923555, Fehler: 366272556, Fehler: 40229283).
  • WebAuthn: Die WebAuthn-Automatisierungs-API wurde um die Eigenschaften userName und userDisplayName erweitert (crrev.com/c/5905423, Fehler 367915823).

Diverse Fehlerkorrekturen

Interne Änderungen und Refaktorierungen

  • Speichersicherheit (Spanifizierung): Die unsichere Verwendung von Zeigern in net::HttpUtil wurde durch base::span ersetzt (crrev.com/c/5854420) und base::File::WriteAtCurrentPos() wurde zu seinem spanbasierten Äquivalent migriert (crrev.com/c/5818972). Die Werte für Kartenzeiger (z.B. in std::map, std::unordered_map) wurden in raw_ptr geändert (crrev.com/c/5867189, Fehler: 329428315).
  • C++-Standards: Abseil-Attributmakros (ABSL_ATTRIBUTE_*) wurden durch Standardmakros (base/) ersetzt (crrev.com/c/5852373). Unbeabsichtigte Kopien wurden vermieden, indem Pass-by-Value-Strings/-Vektoren durch std::string_view- oder const-Referenzen ersetzt und überflüssige const-Qualifizierer aus std::string_view-Argumenten entfernt wurden (crrev.com/c/5914620, crrev.com/c/5906184, Fehler 369952985).
  • Infrastruktur: Fuchsia wurde so konfiguriert, dass ChromeDriver zur Steuerung von web-engine verwendet wird (crrev.com/c/5867896, Fehler: 40935291).
  • Tests: Ein WebAuthn-Test mit Fenced Frames wurde vom alten Content Shell-Runner zu Headless Chrome mit ChromeDriver migriert, da der alte Runner bald keine Unterstützung mehr für die WebAuthn-Testdriver API bietet (crrev.com/c/5920770, Fehler: 372169469).

ChromeDriver 130

Neue Funktionen

Interne Änderungen und Refaktorierungen

  • C++-Standards: Probleme mit der „Regel der fünf“ in verschiedenen Klassen behoben. Da das Chrome-Style-Plug-in auf Inline-Destruktoren besteht, ohne auch Inline-Move-Konstruktoren zu erzwingen, hat der Compiler Move-Operatoren implizit gelöscht und ist stillschweigend auf Kopien zurückgefallen. Diese fehlenden Deklarationen wurden hinzugefügt (crrev.com/c/5846757, Fehler: 364788123).
  • Tests: Die Zusammenfassung der wptrunner-Testergebnisse wurde bereinigt, indem der hartcodierte String chrome durch das tatsächlich verwendete Produkt ersetzt und das ausführliche command-Artefakt aus der Zusammenfassung ausgeblendet wurde (crrev.com/c/5825633, Fehler: 41494889).
  • Tests: Es wurden massive Testfehler in ChromeDriver-Integrationstests unter macOS 15 (Mac15) behoben, indem bestimmte Zeitüberschreitungen verdoppelt wurden, da Tests auf diesem Betriebssystem deutlich mehr Zeit als auf Mac14 benötigten. Vier virtuelle Sensortests wurden aufgrund von Instabilität ebenfalls der Ignorierliste hinzugefügt (crrev.com/c/5817455, Fehler: 354939744).
  • Tests: Der instabile ChromeDriverSiteIsolation.testClickNavigateLocalToLocal-Test wurde auf Mac deaktiviert (crrev.com/c/5806894, Fehler: 361521805) und die instabilen ChromeDriverTest.testClickElement*ObscuredByScrollBar-Tests wurden unter Windows 11 deaktiviert (crrev.com/c/5804083, Fehler: 360058651).
  • Tests: Die ChromeDriver-Akzeptanztests wurden aufgrund mehrerer Infrastrukturprobleme entfernt. Bei diesen Tests wurden ältere Chrome-Versionen heruntergeladen, um sie mit dem aktuellen ChromeDriver zu testen. Sie können später mit Autoroll wieder in CI hinzugefügt werden (crrev.com/c/5812142, Fehler 357737793).

ChromeDriver 129

Neue Funktionen

  • BiDi: Der Helfer für die ChromeDriver-Sitzungsinitialisierung wurde aktualisiert, um einen session.new-Befehl an den BiDi-Mapper zu senden. So kann der Mapper Funktionen direkt verarbeiten. Dies ist der erste Schritt zur Entfernung von MapperOptions (crrev.com/c/5741432, Fehler 356371297). Hinweis: Eine ähnliche Änderung crrev.com/c/5754093, die die verarbeitete unhandledPromptBehavior bereitstellte, wurde aufgrund eines Rückgangs der Testabdeckung zurückgesetzt crrev.com/c/5755744.
  • Compute Pressure: Es wurden neue Erweiterungsbefehle für die Verwaltung virtueller Druckquellen hinzugefügt, mit denen der Automatisierungsabschnitt der Compute Pressure-Spezifikation implementiert wird. Diese Befehle werden geparst und an die CDP-Ebene weitergeleitet (crrev.com/c/5666583, Fehler: 347031400).
  • Erweiterungen MV2: Aktualisierte Tests, die das MV2-Verhalten ausüben, um die ScopedTestMV2Enabler im Rahmen des laufenden Feldversuchs zur Einstellung von Extension Manifest V2 (crrev.com/c/5685054, Fehler: 339061151) zu verwenden.

Diverse Fehlerkorrekturen

  • Klassische Serialisierung: Gesehene Objekte werden bei der Serialisierung eines Set in den Ausführungsergebnissen von WebDriver Classic-Skripts erfasst. Dadurch werden Endlosschleifen verhindert und Überschreibungen von Array.prototype.includes toleriert (crrev.com/c/5765833, Fehler 357472850). Hinweis: Dies wurde später aufgrund einer WPT-Regression crrev.com/c/5773175 rückgängig gemacht.

Interne Änderungen und Refaktorierungen

ChromeDriver 128

Neue Funktionen

  • Funktionen: Die Verwendung eines Dictionary für die unhandledPromptBehavior-Funktion wurde zugelassen, um den Standardfunktionsstrukturen zu entsprechen. Der Mapper berücksichtigt dies jedoch noch nicht vollständig (crrev.com/c/5692204, crrev.com/c/5682934, Fehler: 42323841).
  • Startup: Das Befehlszeilenargument --ignore-explicit-port wurde zu ChromeDriver hinzugefügt. Dieser temporäre Workaround zwingt ChromeDriver, jeden explizit angegebenen Port zu ignorieren und stattdessen einen kostenlosen Port zu suchen und daran zu binden. Dadurch werden TCP-Port-Races während der Testausführung von Webplattformtests behoben. Der Workaround soll nach M132 entfernt werden (crrev.com/c/5724574, crrev.com/c/5703976, Fehler 42323836).

Diverse Fehlerkorrekturen

  • Sensoren: Der ExecuteUpdateVirtualSensor-Befehl wurde so korrigiert, dass SendCommand() anstelle von SendCommandAndGetResult() verwendet wird, da der CDP-Befehl setSensorOverrideReadings keinen Wert zurückgibt (crrev.com/c/5703589).
  • FedCM: Eine Race-Bedingung in FedCM-ChromeDriver-Tests wurde behoben, indem nicht mehr darauf bestanden wird, dass NoSuchDialog zurückgegeben wird, wenn ein Dialogfeld erwartet wird. Dadurch werden Fehler verhindert, wenn das Dialogfeld zu schnell angezeigt wird (crrev.com/c/5713515, Fehler: 346530330).
  • Tests: WebAuthn-Tests für virtuelle Authentifikatoren auf Mac wurden wieder aktiviert, nachdem das zugrunde liegende Problem (crbug.com/40233722) behoben wurde (crrev.com/c/5635806, Fehler: 329130177).
  • Fehlermeldungen: Ein Tippfehler in der Fehlermeldung für den Befehl execute/async wurde behoben (crrev.com/c/5697913).

Interne Änderungen und Refaktorierungen

ChromeDriver 127

Diverse Fehlerkorrekturen

  • Stabilität: Ein ChromeDriver-Absturz wurde behoben, der auftrat, wenn ein target.detachFromTarget-Befehl (oder ein target.detachedFromTarget-Ereignis) empfangen wurde, während der Entwicklertools-Client andere Befehle verarbeitete. Dadurch wurde die vorzeitige Freigabe der Objekte WebView und DevToolsClient verhindert (crrev.com/c/5527584, Fehler 339773537).
  • Stabilität: Es wurde ein Problem behoben, bei dem der Befehl Switch To Window fälschlicherweise einen „unbekannten Fehler“ zurückgeben konnte, wenn eine Webansicht während der Befehlsausführung getrennt wurde. Der interne Fehler „Webansicht nicht gefunden“ wird jetzt korrekt ignoriert, was zu einer Standardantwort „no such window“ führt, wenn das Zielfenster tatsächlich geschlossen wurde (crrev.com/c/5583730, Fehler: 338616700).
  • Stabilität: ChromeDriver toleriert jetzt das Trennen von Zielen beim Aktualisieren der internen WebView-Liste. Wenn ein Ziel während des Updates getrennt wird, versucht ChromeDriver es jetzt noch einmal, anstatt einen nicht standardmäßigen Fehler zurückzugeben. Dadurch wird die Instabilität in Umgebungen verringert, in denen Fenster schnell erstellt und geschlossen werden (crrev.com/c/5565103, Fehler 338616700, Fehler 4771).
  • Navigation: ChromeDriver wurde um eine Logik erweitert, die darauf wartet, dass eine vom Remote-Ende erkannte Navigation abgeschlossen ist, bevor nach Elementen gesucht wird. Dadurch wird verhindert, dass ChromeDriver einen nicht standardmäßigen Fehler zurückgibt oder mit einem DCHECK abstürzt, wenn eine Navigation mit einem Elementvorgang zusammenfällt (crrev.com/c/5563113, Reverting crrev.com/c/5563420, relanding crrev.com/c/5562089, Bug: 4771).
  • BiDi: Es wurde ein Race-Bedingung zwischen ChromeDriver und BiDiMapper beim Erstellen von Sitzungen behoben. ChromeDriver wartet jetzt darauf, dass der Befehl browsingContext.getTree eine nicht leere Liste zurückgibt, bevor der Befehl „NewSession“ abgeschlossen wird. So wird sichergestellt, dass der neu erstellte Standardtab ordnungsgemäß registriert wird (crrev.com/c/5575497, Fehler 341048786, Fehler 1503101).
  • BiDi: Ein Problem wurde behoben, bei dem der Fokus nach dem Erstellen einer Sitzung im Hintergrundtab des BiDiMapper verblieb, anstatt auf den aktiven Nutzertab zu wechseln. Dazu wurde dem ersten Nutzertab explizit der Fokus zugewiesen (crrev.com/c/5594070, Fehler 341048786, Fehler 1503101).
  • BiDi: ChromeDriver versucht nicht mehr, ein Ziel anzuhängen, wenn BiDi-Befehle (z. B. browsingContext.close) verarbeitet werden. So wird verhindert, dass CDP-Befehle auf unbestimmte Zeit blockiert werden, wenn eine Nutzeraufforderung geöffnet ist. Die Verarbeitung wird vollständig an die bereits verbundene BiDi-Ebene delegiert (crrev.com/c/5541915, Rückgängigmachen von crrev.com/c/5539818, erneutes Einfügen von crrev.com/c/5522393, Fehler 4758).
  • FedCM: Der fedcm-loginhint.https.html-WPT-Testfehler wurde behoben, bei dem ein Dialogfeld fälschlicherweise als geschlossen markiert wurde. Der Status wird jetzt nur aktualisiert, wenn der selectAccount-Vorgang tatsächlich erfolgreich ist (crrev.com/c/5398379, Fehler: 331237776).
  • Testen: Ein DCHECK-Fehler beim Parsen von JSON wurde behoben, wenn ein Zeichen genau die kExtendedASCIIStart-Grenze erreichte (crrev.com/c/5565276, Fehler: 40284755).
  • Tests: Der scrollend-event-fires-to-iframe-window.html-WPT-Test wurde korrigiert, indem das iframe-Element als Scrollursprung verwendet und die Eingaben für die Zeigerbewegung auf ganze Zahlen gerundet wurden. So werden ChromeDriver-Fehler bei Touch-Positionen mit Dezimalstellen verhindert (crrev.com/c/5570150, Fehler: 340956654).
  • Tests: Verbesserte Diagnose in ChromeDriver-Integrationstests durch Ausgeben der versuchten Pfade, wenn run_py_tests.py das Browser-Binärprogramm nicht finden kann (crrev.com/c/5604204, Fehler 4781).

Interne Änderungen und Refaktorierungen

ChromeDriver 126

Neue Funktionen

  • BiDi: ChromeDriver wurde aktualisiert, um den Schalter --disable-background-timer-throttling beim Starten des Browsers für eine WebDriver BiDi-Sitzung bereitzustellen. Dadurch wird verhindert, dass Hintergrundtabs gedrosselt werden (crrev.com/c/5515013, Fehler 4762).
  • BiDi: Unterstützung für den BiDi Mapper wurde hinzugefügt, um Debugging-Meldungen (sendDebugMessage) zu senden, wenn ausführliches Logging erforderlich ist. ChromeDriver markiert diese Ereignisse als bidi messages für die Verarbeitung, obwohl BidiTracker sie derzeit ignoriert (crrev.com/c/5465782, Fehler 4753).
  • Klassisch: Die automatische Annahme aller beforeunload-Dialogfelder (Warnungen) wird implementiert. Dies entspricht dem WebDriver-Standard, der vorschreibt, dass sie niemals in einer klassischen Sitzung angezeigt werden dürfen (crrev.com/c/5517510, Fehler 4757).

Diverse Fehlerkorrekturen

  • Klassisch: Die redundante Begrenzung der maximalen Anzahl von Versuchen in der Logik zum Abrufen von Elementen wurde entfernt. Der Abruf ist jetzt nur noch durch das implizite Zeitlimit begrenzt. So werden Szenarien verhindert, in denen der Vorgang vorzeitig fehlschlagen und fälschlicherweise ein nicht standardmäßiger NoSuchExecutionContext-Fehler zurückgegeben werden konnte (crrev.com/c/5478668, Fehler 4379).
  • Klassisch: Es wurde ein Regressionsfehler behoben, der dazu führte, dass ChromeDriver mit einem javascript error- anstelle eines invalid selector-Fehlers reagierte, wenn bei einer Abrufanfrage eine ungültige Standortstrategie verwendet wurde (crrev.com/c/5490662, Fehler 4743).
  • Klassisch: Fensterbefehle unter Android (Maximieren, Minimieren, Vollbild) geben jetzt den standardkonformen unsupported operation-Fehler zurück, anstatt fortzufahren, da diese Aktionen vom Android-Browser nicht unterstützt werden (crrev.com/c/5490224, Fehler 4689).
  • Klassisch: Der interne Fehlercode kChromeNotReachable wird von ChromeDriver nicht mehr zurückgegeben. Stattdessen wird jetzt der Standardfehler kSessionNotCreated zurückgegeben, wenn der HTTP-Client keine Verbindung zum Browser herstellen kann (crrev.com/c/5476390, Fehler 4379).
  • Klassisch: Der ChromeDriver gibt bei der Ausführung von Fensterbefehlen nie den nicht standardmäßigen Fehler kNoSuchExecutionContext zurück (crrev.com/c/5483606, Fehler 4379).
  • Klassisch: Der ungenutzte und nicht unterstützte Fehlercode kForbidden wurde aus der Liste der unterstützten Fehlercodes entfernt (crrev.com/c/5476927, Fehler 4379).
  • BiDi: Der ChromeDriver wurde aktualisiert, sodass der Nutzer vor dem Schließen des dedizierten Mapper-Tabs aufgefordert wird, die Aktion zu bestätigen. Dies entspricht den Upstream-Änderungen in chromium-bidi (crrev.com/c/5508600, Fehler 4761).

Interne Änderungen und Refaktorierungen

ChromeDriver 125

Neue Funktionen

  • Geräteposition: Es wurden ChromeDriver-Befehle für die Verwaltung der Geräteposition hinzugefügt, die den Automatisierungsabschnitt der Spezifikation für die Geräteposition unterstützen. Dadurch kann die vom Gerät festgelegte Hardware-Position überschrieben und die Überschreibung über Erweiterungsbefehle entfernt werden (crrev.com/c/5437993, Fehler: 330376761).

Diverse Fehlerkorrekturen

  • BiDi: Die Zwischenspeicherung des eingehenden BiDi-Befehls id wurde von Double in base::Value geändert. So wird sichergestellt, dass id in der Antwort genau zurückgegeben wird, ohne dass nach der JSON-Serialisierung ein unerwarteter nachgestellter Dezimalpunkt oder Bruchteil vorhanden ist (crrev.com/c/5444225, Fehler 4676).
  • FedCM: Die Änderung zur Aktivierung von CORS am ID-Assertion-Endpunkt wurde nach der Fertigstellung der IDPs wieder eingeführt (crrev.com/c/5440132, Rückgängigmachen von crrev.com/c/5381316, Wiedereinführung von crrev.com/c/5370086, Fehler: 40284123).
  • FedCM: Ein Fehler wurde behoben, bei dem ein Dialogfeld fälschlicherweise als geschlossen markiert wurde. Das Dialogfeld wird jetzt nur noch als geschlossen markiert, wenn der Befehl selectAccount erfolgreich ausgeführt wird. Dadurch werden Testfehler behoben, wenn selectAccount ohne erwartete Kontoauswahl aufgerufen wird (crrev.com/c/5398379, Fehler 331237776). Der Aufruf von fedcm_get_and_select_first_account wurde vermieden, wenn keine Kontoauswahl erwartet wird, um diesen Fehler nicht auszulösen (crrev.com/c/5398800).
  • Tests: Ein Fehler im popover-light-dismiss.html-WPT-Test wurde behoben, indem Aktionssequenzen kombiniert und das Dokument des Hauptframes als Ursprung für die pointerUp-Aktion verwendet wurde. Dadurch wird verhindert, dass ChromeDriver fälschlicherweise gleichzeitige pointerUp-Ereignisse über Frames hinweg sendet (crrev.com/c/5402096, Fehler: 325981758).
  • Tests: wptrunner wurde korrigiert, um die stderr-Ausgabe (einschließlich der Browserprotokolle, die bei Verwendung von --enable-chrome-logs geschrieben werden) an das stderr-Artefakt anstelle von crash_log weiterzuleiten. Außerdem wurden Harness-Fehler (die den Browser-Stacktrace enthalten) nach crash_log verschoben (crrev.com/c/5437023, Fehler: 41494889).
  • Testen: Das Problem, dass Browserlogs durch Gruppieren der Ausgabe nach dem ChromeDriver-Prozess an das richtige Testartefakt weitergeleitet werden, wurde behoben. Dadurch werden verschachtelte und verwaiste Logs bei der parallelen Testausführung verhindert (crrev.com/c/5320681, Fehler 41494889).wptrunner

Interne Änderungen und Refaktorierungen

  • BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Protokollverbesserungen und Fehlerkorrekturen zu integrieren (crrev.com/c/5433300, crrev.com/c/5393442, Fehler 4226). Hinweis: Eine frühere Erhöhung crrev.com/c/5374366 wurde zurückgesetzt crrev.com/c/5374839 und anschließend mit deaktivierten instabilen Tests und aktualisierten Lizenzen crrev.com/c/5374914 neu eingeführt.
  • Diagnose: Die StackTrace von Chrome wurde in ChromeDriver-Ausnahmen integriert. Dadurch wird der Browser-Stacktrace in der Fehlermeldung angezeigt, wenn eine Sitzung aufgrund eines Seiten-/Tab-Absturzes gelöscht wird (z. B. hängende Zeiger auf dem Mac). Dies verbessert die Debugging-Möglichkeiten erheblich (crrev.com/c/5374371, Fehler: 330009945).
  • Tests: Der instabile Integrationstest testTakeLargeElementViewportScreenshot wurde auf dem Mac (insbesondere mac-arm64) vorübergehend deaktiviert (crrev.com/c/5447515, Fehler 333826980).
  • Tests: Die ChromeDriver-Startargumente in Testumgebungen (CEL) wurden aktualisiert, damit sie der Selenium 4+-Syntax entsprechen (crrev.com/c/5448812, Fehler: 308885357).
  • Testen: Die genaue chrome-Befehlszeile, die zum Ausführen der einzelnen WPT-Tests verwendet wurde, wurde aus dem chromedriver-Log in ein ResultDB-Artefakt mit dem Namen command extrahiert. Das erleichtert das manuelle Debugging mit run_blink_wptserve.py (crrev.com/c/5441189, Fehler: 41494889).
  • Abhängigkeiten: Closure wurde aus der Abhängigkeitsliste von selenium-atoms entfernt und somit auch aus den Drittanbieterhinweisen von ChromeDriver (crrev.com/c/5424804, Fehler 4226).
  • Abhängigkeiten: Nicht verwendete Abhängigkeiten von dynamic_annotations im Basis-Repository wurden entfernt (crrev.com/c/3398908, Fehler 1282422).
  • Formatierung: Die neue clang-format-Konfiguration wurde auf problematische Windows-Header angewendet (crrev.com/c/5367127, Fehler: 329138753).

ChromeDriver 124

Neue Funktionen

  • BiDi: Es wurde ein Build-Schritt hinzugefügt, um das BiDiMapper-Script zu minimieren, bevor es in ChromeDriver eingebettet wird, da der Source Mapper jetzt unminifiziert von CIPD heruntergeladen wird (crrev.com/c/5310075, Fehler 4226).
  • WebAuthn: Der Befehl SetCredentialProperties wurde hinzugefügt, mit dem Clients die Sicherungsflags für Anmeldedaten für WebAuthn aktualisieren können (crrev.com/c/5296389, Fehler: 40945430).
  • WebAuthn: WebAuthn-Backup-Flags über WebDriver verfügbar gemacht, indem dem Befehl „Virtuellen Authenticator hinzufügen“ defaultBackupEligibility und defaultBackupState und dem Befehl „Anmeldedaten hinzufügen“ backupEligibility und backupState hinzugefügt wurden (crrev.com/c/5297117, Fehler 40945430).
  • Tests: Unterstützung für das Befehlszeilenargument --failfast für ChromeDriver-Python-Integrationstests hinzugefügt. Der Testlauf wird beim ersten Fehler beendet, um das Debugging zu erleichtern (crrev.com/c/5374546).
  • Testen: Unterstützung für die Content-Shell für den SetRPHRegistrationMode-Webdriver-Befehl über testdriver-vendor.js-APIs hinzugefügt (crrev.com/c/5205730, Fehler 1359103).

Diverse Fehlerkorrekturen

  • Stabilität: Die Prüfung des Zeitüberschreitungsablaufs wurde in ChromeImpl::SetWindowBounds in den Hauptteil der Poll-and-Wait-Schleife verschoben. Damit wird ein Problem behoben, bei dem das Zeitlimit bei hoher Last ablaufen konnte, bevor die erste Schleifeniteration erfolgte (crrev.com/c/5366899, Fehler 4642).
  • Leistung: Die Wartezeit in ChromeImpl::SetWindowBounds wurde minimiert, indem nur dann eine exponentielle Backoff-Wartezeit angewendet wird, wenn die Fenstergrenzen noch nicht den gewünschten Zustand erreicht haben. Dadurch wird die WPT-Einrichtungsverzögerung reduziert (crrev.com/c/5366457, Fehler 4642).
  • Start: ChromeDriver wurde aktualisiert, sodass beim Angeben des Datenverzeichnisses für content_shell --user-data-dir anstelle von --data-path verwendet wird. Dies entspricht der Art und Weise, wie der aktive Entwicklertools-Port gelesen wird (crrev.com/c/5226609, Fehler 1295373).

Interne Änderungen und Refaktorierungen

  • BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Protokollkorrekturen und ‑funktionen zu berücksichtigen (crrev.com/c/5374366, crrev.com/c/5349491, crrev.com/c/5317650, Bug: 4226). Hinweis: Eine Erhöhung wurde aufgrund von Testfehlern kurzzeitig zurückgesetzt und dann wieder eingeführt(crrev.com/c/5374839, crrev.com/c/5368680, crrev.com/c/5319423).
  • Die Verwendung von absl::optional wurde in der gesamten Codebasis durch std::optional ersetzt, nachdem absl::optional zu einem Typalias umgestellt wurde (crrev.com/c/5296147, Fehler 1500249).
  • Die MiraclePtr-Abdeckung (raw_ptr) wurde auf zusätzliche Standardcontainer wie std::list, std::unordered_set, base::flat_set, std::stack und std::queue erweitert (crrev.com/c/5306923, Fehler: 325302189).
  • WriteBigEndian() wurde so umgestellt, dass base::numerics-Byte-Conversions oder BigEndianWriter verwendet werden (jetzt wird base::span akzeptiert). Dadurch wird die Sicherheit beim Schreiben von Big-Endian-Bytes verbessert (crrev.com/c/5202348, Fehler 1490484).
  • ChromeDriver wird jetzt verwendet, um Web Platform Tests (WPT) mit content_shell auszuführen (ausgenommen virtuelle Tests und Reftests, die auf Upstream-Fehlerkorrekturen warten) (crrev.com/c/5347371, Fehler: 40214293).
  • Alle vorhandenen Webtests für generische Sensoren wurden so umgestellt, dass test_driver.js und virtuelle Sensoren anstelle von JS-/Mojo-Mocks verwendet werden. Dies entspricht dem neuen Automatisierungsabschnitt der Spezifikation für generische Sensoren (crrev.com/c/4770867, Fehler 1278377, Fehler 1471996).
  • Die Lizenzgenerierung wurde verbessert, indem append_notices.py hinzugefügt wurde, um Quellenangaben für BiDiMapper-Abhängigkeiten zu generieren, und der licenses.py-Aufruf aktualisiert wurde, um sich ausschließlich auf die selenium-atoms-README für Hinweise von Drittanbietern zu verlassen (crrev.com/c/5350601, crrev.com/c/5339957, Fehler 4729, Fehler 4735).

ChromeDriver 123

Neue Funktionen

  • FedCM: Modale Dialogfelder für Abläufe mit Schaltflächen für einzelne Konten werden angezeigt. Außerdem wird die Unterstützung für modale Ansichten in der Automatisierungsschnittstelle hinzugefügt (crrev.com/c/5231438, Fehler 1518356).
  • FedCM: ChromeDriver-Unterstützung für das Öffnen von Links in FedCM-Dialogfeldern implementiert, die zur Vereinfachung der Automatisierung als Schaltflächen behandelt werden (crrev.com/c/5225543, Fehler 1513520).
  • Sensoren: Die virtuellen WebDriver-Sensorbefehle wurden so geändert, dass sie Euler-Winkel (Alpha-Beta-Gamma) anstelle von Quaternionen lesen. Damit wird den aktuellen Updates der Spezifikation für Orientierungssensoren entsprochen. Interne CDP- und Dienstebenen verwenden weiterhin Quaternione über einen Konvertierungsschritt (crrev.com/c/5229177, Fehler 1506995, Fehler 1520912, Fehler 1520919).

Diverse Fehlerkorrekturen

  • Klassisch: Es wurde ein Problem behoben, bei dem die Rückgabe eines Knotens aus einem anderen Frame über ein Skript fälschlicherweise zu einem StaleElementReference-Fehler führte. Jetzt wird korrekt ein JavaScriptError zurückgegeben, um dem WebDriver-Standard zu entsprechen (crrev.com/c/5222746, Fehler 4668).
  • Tests: Ein Test für Overscroll-Ereignisse wurde korrigiert, der in Chrome/ChromeDriver fehlgeschlagen war, weil der Touch-Drag über die Fenstergrenzen hinausging. Der Drag ist jetzt richtig begrenzt (crrev.com/c/5297676, Fehler: 40832230).
  • Tests: Die open-close.https.html-MIDI-Tests wurden korrigiert, sodass keine unnötigen Zusagen erstellt werden. Dadurch werden nicht behandelte Zusagenablehnungen vermieden, die dazu führten, dass ChromeDriver den Test nicht bestanden hat (crrev.com/c/5239869, Fehler 1499775).
  • Tests: Das Berechtigungssatz in wpt_internal/system-wake-lock/idlharness*-Tests wurde korrigiert, in denen test_driver.set_permission(...) fälschlicherweise false anstelle von null oder WindowProxy übergeben hat, was zu Verwirrung bei ChromeDriver geführt hat (crrev.com/c/5271087, Fehler: 40287920).

Interne Änderungen und Refaktorierungen

  • BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, um die neuesten Fehlerkorrekturen und Funktionen zu erhalten (crrev.com/c/5205452, crrev.com/c/5255321, crrev.com/c/5238148, crrev.com/c/5237125, Fehler 4226). Hinweis: Ein Bump wurde aufgrund von Build-Fehlern crrev.com/c/5238855 kurzzeitig zurückgesetzt und dann wieder angewendet.
  • Die Codequalität von ChromeDriver wurde verbessert, indem unsichere statische Umwandlungen von einer Basisklasse in eine abgeleitete Klasse in ChromeImpl und DevToolsClientImpl entfernt wurden. Dadurch wird potenziell undefiniertes Verhalten verhindert (crrev.com/c/5277062, crrev.com/c/5272562, Bug: 4702).
  • Unsichere Casts in WebViewImpl wurden entfernt (crrev.com/c/5272230, Fehler 4702).
  • Die eingestellten Formen von base::Base64Encode() wurden entfernt und zur neueren std::string-Rückgabevariante migriert, anstatt Out-Parameter zu verwenden (crrev.com/c/5179900, crrev.com/c/5246585, Bug: 1486214).
  • Alle #include-Anweisungen für base/... wurden aktualisiert, damit "" anstelle von <> verwendet wird (crrev.com/c/5237376, Fehler 1500249).
  • Alle DIR_METADATA-Dateien in chrome/test/ wurden zu Buganizer migriert (crrev.com/c/5284119, Bug: 1518875).
  • Verhindert, dass wptrunner eine lokale --Datei erstellt, wenn -vvv übergeben wird, indem der unnötige Schalter chromedriver --log-path=- entfernt wird, da stderr bereits zu stdout umgeleitet wird (crrev.com/c/5282721).
  • wptrunner wurde verbessert, um Testergebnisse zusammenzufassen, wenn Regressionen auftreten. Dazu gehören auch Untertestergebnisse und ChromeDriver-Stacktraces direkt in der Zusammenfassungsausgabe (crrev.com/c/5238662, Fehler 1521922).
  • Vereinfachtes Debugging von ChromeDriver-Integrationstests durch Einführung des Parameters --remote-chromedriver-port für run_py_tests.py, der die Verbindung zu einer vorhandenen Instanz ermöglicht, die unter einem Debugger ausgeführt wird (crrev.com/c/5237254, Fehler 4693).
  • Aufrufe von base::HexEncode() und RandBytes() mit zwei Argumenten wurden vermieden, damit der Compiler die richtige Größe ableiten kann. Dadurch wird der Code vereinfacht (crrev.com/c/5241357).

ChromeDriver 122

Diverse Fehlerkorrekturen

  • BiDi: Die Serialisierung von Deep Nodes wurde aktualisiert, um loaderId einzuschließen. Dadurch können ChromeDriver und der BiDi-Mapper Knoten richtig referenzieren und dereferenzieren, ohne dass es zu vielen Roundtrips kommt (crrev.com/c/5116240, Fehler 1420968).
  • Funktionen: ChromeDriver wurde aktualisiert, sodass die acceptInsecureCerts-Funktion sofort beim Start an den BiDi-Mapper übergeben wird. Dadurch werden Race-Bedingungen verhindert, bei denen die Funktion möglicherweise zu spät angewendet wird (crrev.com/c/5125711, Fehler 4643).
  • Klassisch: Die Generierung von Elementreferenzen wurde neu konzipiert, um das <frame_id>.<loader_id>.<backend_node_id>-Format zu verwenden. Dadurch kann ChromeDriver bei Frame-Navigationen und DOM-Aktualisierungen eindeutig zwischen gültigen, unbekannten und veralteten Elementreferenzen unterscheiden (crrev.com/c/5094519, Fehler 4379).
  • Klassisch: Ein Problem wurde behoben, bei dem der Befehl window/handles mit dem Fehler „no such window“ (kein solches Fenster) fehlschlagen konnte, wenn ein neu erstelltes Ziel geschlossen wurde (z.B. bei einer Race-Bedingung), bevor ChromeDriver daran angehängt werden konnte (crrev.com/c/5147409, Fehler 1506833).
  • FedCM: Ein interner Event-Listener wurde hinzugefügt, um zu benachrichtigen, wenn ein FedCM-Dialogfeld geschlossen wird. So wird verhindert, dass der dialogtype-Befehl veraltete Daten zurückgibt, wenn das Dialogfeld extern geschlossen wurde (z. B. über AbortController.abort) (crrev.com/c/5067504, Fehler 1506292).
  • FedCM: Das Anbieterpräfix wurde aus dem Befehl ClickDialogButton entfernt, da es jetzt in der FedCM-Spezifikation genehmigt wurde (crrev.com/c/5092527, Fehler 1499341).

Interne Änderungen und Refaktorierungen

  • BiDi: Die BiDi Mapper-Abhängigkeit wurde auf die neueste Version aktualisiert (crrev.com/c/5205452, Fehler 4226).
  • Der ChromeDriver- und Chrome DevTools Protocol-Traffic (CDP) wurde reduziert, indem redundante Page.enable-Aufrufe entfernt wurden, die von jedem DevToolsEventListener gesendet wurden, da DevToolsClientImpl dies bereits pro Ziel übernimmt (crrev.com/c/5088789, Fehler 4600).
  • Alle Wptrunner-Builder für content_shell wurden auf experimentell gesetzt, da das Ausführen von Tests im Protokollmodus derzeit nicht vollständig unterstützt wird, während die ChromeDriver-Integration läuft (crrev.com/c/5225148, Fehler 1474702).
  • Übersprungene Tests, für die window.test_driver_internal.get_computed_role auf content_shell erforderlich ist, da sie noch nicht implementiert ist. Dadurch werden TypeError-Fehler verhindert (crrev.com/c/5189678, Fehler 1517744).
  • Die Refaktorierung wurde wieder eingeführt, um plattformunabhängige IS_OZONE_{X11, WAYLAND}-Flags anstelle von OZONE_PLATFORM_* zu verwenden (crrev.com/c/5086329, Fehler 1500494).
  • Die selenium-atoms-Abhängigkeit wurde auf die neueste Version aktualisiert (crrev.com/c/5110808, Fehler 4662).
  • Die Logik in SnapEvents-Tests wurde korrigiert, wenn sie für das vollständige Chrome-Binärprogramm ausgeführt werden. Dazu wurden Pointer-Move-Eingaben gerundet, der Parameter origin für Scrollvorgänge erzwungen und Näherungsassertions (assert_approx_equals) verwendet, um Abweichungen bei Scrollvorgängen und Offsets zu berücksichtigen (crrev.com/c/5097343).
  • StringPrintfNonConstexpr()-Helfer hinzugefügt, um ihn von StringPrintf() zu unterscheiden, wenn Formatierungsstrings keine Compile-Zeit-Konstanten sind (crrev.com/c/4950568, Fehler 1371963).
  • Es wurde dafür gesorgt, dass beim Escaping von chromium::import!-Rust-Makros eine injektive Funktion verwendet wird, um Kollisionen bei generierten GN-Zielnamen zu verhindern (crrev.com/c/5132119, Fehler 1512174).
  • Die ScopedTempDirWithRetry-Implementierung wurde durch Hinzufügen eines Konstruktors und früher Rückgaben im Destruktor bereinigt (crrev.com/c/5113843).

ChromeDriver 121

Neue Funktionen

  • Tests: Es wurde Unterstützung für die Ausführung von integrierten ChromeDriver-Tests (chromedriver_py_test) für chrome-headless-shell zusätzlich zum Standard-Chrome-Browser auf Build-Bots hinzugefügt. Dazu gehört die Möglichkeit, die Browser-Binärdatei anhand des --browser-name-Parameters zu ermitteln und bestimmte Testsätze bedingt auszuführen (crrev.com/c/4995189, crrev.com/c/4989442, Fehler 4358).

Diverse Fehlerkorrekturen

  • Stabilität: Die Standard-KeyboardLayoutEngine wurde als StubKeyboardLayoutEngine initialisiert, um ChromeDriver-Abstürze zu verhindern, die durch einen DCHECK-Treffer in KeyboardLayoutEngineManager::SetKeyboardLayoutEngine verursacht werden (crrev.com/c/5017859, Fehler 4625).
  • Stabilität: Ein Problem mit der Instabilität wurde behoben, bei dem ChromeDriver abstürzen konnte, wenn der Sitzungsthread das Schließen einer Verbindung angefordert hat, nachdem der Client bereits das Schließen derselben Verbindung angefordert hatte (crrev.com/c/4994636, Fehler 4606).
  • Ressourcenverwaltung: Es wurden Ressourcenlecks in ChromeDriver-Integrationstests (RemoteBrowserTest) behoben, indem dafür gesorgt wurde, dass der Browserprozess auch dann beendet wird, wenn eine Ausnahme von einem ChromeDriver-Befehl ausgelöst wird (crrev.com/c/5009554, Fehler 4614).
  • Ressourcenverwaltung: In die ChromeDriver-Integrationstests wurde Logik implementiert, um Browserprozesse zu erkennen und zu beenden, die vom ChromeDriver-Prozess nicht mehr verwendet werden (crrev.com/c/5014093, Fehler 4617).
  • Start: Ein Problem wurde behoben, bei dem chrome-headless-shell eine leere Zielliste zurückgab, wodurch die Sitzungserstellung verhindert wurde. Das Problem wurde behoben, indem das Argument data:, an die Browser-Befehlszeile angehängt wurde, wenn der Browsername chrome-headless-shell war (crrev.com/c/5010392, crrev.com/c/5009535, Fehler 4615, Fehler 4358).
  • FedCM: Es wurde ein neues Ereignis hinzugefügt, um zu benachrichtigen, wenn ein FedCM-Dialogfeld geschlossen wird. So wird dafür gesorgt, dass dialogtype und andere Befehle keine veralteten Daten zurückgeben, wenn das Dialogfeld extern geschlossen wurde (z. B. über AbortController.abort) (crrev.com/c/5067504, Fehler 1506292).
  • Tests: Alle ChromeDriver-Integrationstests, die zuvor für chrome-headless-shell unter Windows deaktiviert waren, wurden korrigiert und wieder aktiviert (crrev.com/c/5027594, Fehler 4358).
  • Tests: Übermäßig strenge Zusicherungen in testElementRegionTest wurden abgeschwächt, um sie an den WebDriver-Standard anzugleichen. Dadurch wird die Instabilität behoben, die durch Besonderheiten beim Rendern im Browser verursacht wurde (crrev.com/c/5017865, Fehler 4526).

Interne Änderungen und Refaktorierungen

ChromeDriver 120

Neue Funktionen

  • BiDi: Unterstützung für die Befehle session.new und session.end wurde hinzugefügt. Nutzer können jetzt Sitzungen direkt über BiDi-Befehle erstellen und beenden (crrev.com/c/4941941, Fehler 4496).
  • BiDi: Unterstützung für den Befehl session.status PureBiDi wurde hinzugefügt. Damit können Nutzer eine WebSocket-Verbindung herstellen, die nicht an eine Sitzung gebunden ist, und den Sitzungsstatus abrufen (crrev.com/c/4938596, Fehler 4496). (Relanded after a previous revert in crrev.com/c/4922097)
  • BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert und an den neuen, vereinfachten Mapper-Ausführungsprozess angepasst (crrev.com/c/4952609, Fehler 4226).
  • Sensoren: Virtuelle Sensorbefehle in browser_protocol.pdl und der CDP-Ebene (Emulationsdomain) implementiert und Unterstützung für den Automatisierungsbereich der Generic Sensor-Spezifikation hinzugefügt (crrev.com/c/4770864, Fehler: 1278377).
  • Sensoren: Es wurden ChromeDriver-Erweiterungsbefehle für die Verwaltung virtueller Sensoren hinzugefügt, die WebDriver-Parameter in die neuen CDP-Aufrufe übersetzen (crrev.com/c/4770866, Fehler 1278377).
  • Sensoren: Ein content_shell-Codepfad für die Manipulation virtueller Sensoren über testdriver.js wurde hinzugefügt, wodurch ChromeDriver für Webtests vollständig umgangen wird (crrev.com/c/4770865, Fehler 1278377).
  • Eindämmung von Tracking: Unterstützung für ChromeDriver für die Eindämmung von Bounce-Tracking (DIPS) hinzugefügt, wodurch die Automatisierung der nav-tracking-mitigations-Spezifikation möglich ist (crrev.com/c/4873672, Fehler 1474656). (Hinweis: Diese Änderung wurde aufgrund von fehlgeschlagenen Tests auf dem Mac in crrev.com/c/4938394 vorübergehend zurückgesetzt.)

Diverse Fehlerkorrekturen

  • Startup: Headless Shell-Erkennung wurde zu ChromeDriver hinzugefügt. Dadurch kann nach der chrome-headless-shell-Binärdatei gesucht werden, wenn sie über die Funktionen angefordert wird und kein expliziter Pfad angegeben ist (crrev.com/c/4987262, Fehler 4358). (Relanded after a previous revert in crrev.com/c/4984449)
  • WebSockets: Teilweise Unterstützung für den WebSocket-Closing-Handshake implementiert. ChromeDriver antwortet jetzt mit einem CLOSE-Frame, wenn ein solcher vom Remote-Endpunkt empfangen wird (crrev.com/c/4931500, Fehler 4499).
  • Berechtigungen: options.disclaim_responsibility wurde als Build-Flag verfügbar gemacht, damit Anbieter-Builds (z. B. Microsoft Teams) es deaktivieren können. So wird verhindert, dass macOS-Berechtigungsaufforderungen die Testautomatisierung blockieren (crrev.com/c/4929495, Fehler 1223643).
  • C++-Standardkonformität: Es wurde undefiniertes Verhalten (UB) behoben, das von UBSan beim Umwandeln eines Double-Werts außerhalb des gültigen Bereichs in einen Int-Wert erkannt wurde. Dazu wurden Bereichsprüfungen hinzugefügt (crrev.com/c/4980055, Fehler 1394755).
  • FedCM: Die Unterstützung für die alte Headersyntax wurde entfernt, um die Einhaltung der Standardsyntax login-status-http zu gewährleisten (crrev.com/c/4957073, Fehler 1381501).

Interne Änderungen und Refaktorierungen

  • testReturnFrameElement-Integrationstest hinzugefügt, um das Verhalten von ChromeDriver in Bezug auf die Behandlung von window.frameElement als veraltete Referenz zu überprüfen (crrev.com/c/4983549, Fehler 4477).
  • Verbesserte Protokollierung durch die Sicherstellung, dass ChromeDriver die spezifischen Pfade protokolliert, in denen versucht wird, die Browser-Binärdatei zu finden (crrev.com/c/4976116, Fehler 4539).
  • Verschiedene base::Time-Funktionen wurden umbenannt, um sie aussagekräftiger zu machen (z.B. FromDoubleT() in FromSecondsSinceUnixEpoch()) (crrev.com/c/4956111).
  • Der net::StringIOBuffer-Konstruktor und die IOBuffer-Instanziierungen wurden umgestaltet, um unnötige Stringkopien und Zuweisungen mit der Länge null zu vermeiden (crrev.com/c/4938384, crrev.com/c/4959174).
  • Die String-Verarbeitung wurde optimiert, indem base::StrCat durch + ersetzt und base::AppendHexEncodedByte() verwendet wurde (crrev.com/c/4963465, crrev.com/c/4977165).
  • DIR_SOURCE_ROOT wurde in allen //chrome*-Tests zur besseren Verständlichkeit in DIR_SRC_TEST_DATA_ROOT umbenannt (crrev.com/c/4916045, Fehler 1264897).
  • Flaky PureBidiTest-Tests auf Mac-Build-Servern deaktiviert (crrev.com/c/4983555, Fehler 1496826).

ChromeDriver 119

Neue Funktionen

  • BiDi: Unterstützung für das Auflösen schwacher lokaler Objektreferenzen, die vom Remote-Ende bei Remote-Funktionsaufrufen zurückgegeben werden, wurde implementiert (crrev.com/c/4886760, Fehler 4536).
  • FedCM: Der Befehl confirmidpsignin mit Anbieterpräfix wurde hinzugefügt, um den Ursprungstest für die IDP Sign-In Status API zu unterstützen (crrev.com/c/4811725, Fehler 1451884).

Diverse Fehlerkorrekturen

  • Mobile Emulation: Es wurde ein Problem behoben, bei dem vordefinierte Geräte ohne Client-Hinweise (z.B. ältere Konfigurationen) durch das Einfügen sinnvoller Standardwerte beschädigt wurden (crrev.com/c/4887254, Fehler 4550).
  • Klassisch: Die Serialisierung von Map- und Set-Objekten wurde korrigiert. Sie werden jetzt korrekt als Object anstatt als Collection serialisiert, da sie keine length-Eigenschaft haben (crrev.com/c/4881378, Fehler 4031).
  • Klassisch: Die Logik wurde wiederhergestellt, um während der Tests immer die neueste kompatible Version von ChromeDriver herunterzuladen und zu verwenden. Auf bestimmte Versionen wird nur zurückgegriffen, wenn Kompatibilitätsprobleme auftreten (crrev.com/c/4779613, Rückgängigmachung von crrev.com/c/4778973).
  • FedCM: Die Browserautomatisierungsbefehle wurden standardisiert, indem Signin in Login (confirmidplogin) umbenannt wurde, um den neuesten FedCM-Spezifikationsdiskussionen zu entsprechen (crrev.com/c/4901302, Fehler 1451884).
  • Tests: Es wurden FedCM-Tests korrigiert, die fehlgeschlagen sind, wenn Drittanbieter-Cookies deaktiviert waren. Dazu wurde die IDP Sign-In Status API während der Testausführung explizit aktiviert (crrev.com/c/4889802, Fehler 1484833).
  • Tests: Der ungültige URL-Platzhalter ~NOTFOUND wurde in Test-Runners durch ^NOTFOUND ersetzt, um den anstehenden Änderungen bei der Durchsetzung von Chromium-URL-Standards zu entsprechen (crrev.com/c/4845589, Fehler 1416013).

Interne Änderungen und Refaktorierungen

  • BiDi: Die BiDi Mapper-Abhängigkeit wurde auf Version 0.4.27 aktualisiert, um die neuesten Fehlerkorrekturen und Funktionen zu nutzen (crrev.com/c/4862031, crrev.com/c/4890322).
  • Mehrere Pointer-/Längen-APIs in //url wurden durch std::string_view ersetzt, um die Sicherheit und Benutzerfreundlichkeit zu verbessern (crrev.com/c/4897456).
  • Das generateWebDriverValue-Dienstprogramm wurde so umgestellt, dass es die Option für die umfassende Serialisierung (serializationOptions.serialization: deep) verwendet, die nativ vom BiDi-Protokoll bereitgestellt wird (crrev.com/c/4889644).
  • Es wurden Integrationstests hinzugefügt, um zu prüfen, ob bei der Suche unter einer veralteten Elementreferenz korrekt der Fehler „stale element reference“ (veraltete Elementreferenz) zurückgegeben wird (crrev.com/c/4886793, Fehler 4440).
  • Verbesserte Formatierung des Code-Stils in call_function.js (crrev.com/c/4882511, Fehler 4031).
  • Verbessertes Nutzerfeedback durch explizite Information der Nutzer, wenn sie sich über WebSockets verbinden, dass Pipes unterstützt werden und für eine bessere Zuverlässigkeit und Sicherheit empfohlen werden (crrev.com/c/4882626, Fehler 3480).
  • Die WPT-Suite-Konfiguration wurde aktualisiert, um results.html für webdriver_tests_suite-Tests zu archivieren. Dadurch wird eine bessere Benutzeroberfläche zum Anzeigen von Ergebnissen bereitgestellt (crrev.com/c/4873223).
  • Die Integration von Entwicklertools in WebView wurde korrigiert, indem WebView-WebContents markiert und ihr Entwicklertool-Typ auf popup_page anstelle von other festgelegt wurde (crrev.com/c/4842093).
  • Das WPT-Build-Ziel chrome_wpt wurde zur besseren Übersichtlichkeit in chrome_wpt_tests umbenannt und das redundante Ziel webdriver_wpt_tests wurde entfernt (crrev.com/c/4847474, Fehler 1474702).
  • run_py_tests.py wurde von der eingestellten optparse-Bibliothek zu argparse migriert (crrev.com/c/4849411, Fehler 4557).

ChromeDriver 118

Neue Funktionen

  • Integrationstests: Für ChromeDriver wurden C++-Integrationstests eingeführt, mit denen bestimmte Klassen anhand von echtem CDP-Traffic getestet werden können. So wird die Lücke zwischen Unit-Tests und Python-Integrationstests geschlossen (crrev.com/c/4707855, Fehler 4528).
  • Crossbench: Die crossbench-Abhängigkeit wurde mit zahlreichen Verbesserungen aktualisiert, darunter neue Power-Benchmark-Stories, eine bessere Plattform- und Geräteunterstützung, verbesserte Fehlerbehebung und verschiedene Fehlerkorrekturen (crrev.com/c/4803743).

Diverse Fehlerkorrekturen

  • Funktionen: Ein Problem wurde behoben, bei dem debuggerAddress in Standardkonfigurationen in den zurückgegebenen Funktionen fehlte. Es wird jetzt korrekt zurückgegeben, um die CDP-basierte BiDi-Kommunikation von Selenium zu unterstützen (crrev.com/c/4789068, Fehler 4533).
  • Funktionen: ChromeDriver gibt jetzt standardmäßige platformName-Werte (z.B. „linux“, „windows“, „mac“) zurück, wie in der WebDriver-Spezifikation gefordert (crrev.com/c/4797735, Fehler 4548).

Interne Änderungen und Refaktorierungen

  • Der migrierte Code in MockSocket bevorzugt base::span<> gegenüber Rohzeigern, um die Sicherheit zu verbessern (crrev.com/c/4832086).
  • Veraltete Verwendungen von base::raw_ptr und base::raw_ref wurden zugunsten ihrer uneingeschränkten Formen raw_ptr und raw_ref durch automatische Bereinigung entfernt (crrev.com/c/4773481).
  • Eine Änderung, bei der immer der neueste ChromeDriver verwendet wurde, wurde vorübergehend zurückgesetzt, da sie zu Abstürzen in den stabilen/Beta-Versionen von Windows geführt hat (crrev.com/c/4778973, Rückgängigmachung von crrev.com/c/4777430).
  • Angepasste WPT-Konfigurationen (Web Platform Tests), einschließlich der Unterdrückung von Fehlern, die nur im Debug-Modus auftreten, in pointer_touch.py und der Implementierung der browserseitigen Fokusüberprüfung für Fenced Frames (crrev.com/c/4844810, crrev.com/c/4572517).
  • Fehlendes #include <vector> wurde client_hints.h hinzugefügt, um IWYU-konform zu sein (crrev.com/c/4767547).
  • Apple-spezifische Basistypen (ScopedTypeRef, ScopedCFTypeRef, scoped_nsautorelease_pool) wurden in den base::apple::-Namespace migriert. Es wurden temporäre Weiterleitungsheader für Crashpad beibehalten (crrev.com/c/4799213, crrev.com/c/4790744, crrev.com/c/4790741, crrev.com/c/4784010).

ChromeDriver 117

Neue Funktionen

Diverse Fehlerkorrekturen

  • Stabilität: Es wurde ein Nullzeigerzugriff behoben, der zum Absturz von ChromeDriver und damit zu ConnectionRefused-Fehlern bei Testläufen geführt hat (crrev.com/c/4675633, Fehler 1457101).
  • Navigation: Ein Problem wurde behoben, bei dem die Fehler NoSuchExecutionContext und NoSuchWindow in Chrome während der Navigation nicht einheitlich behandelt wurden. Beide werden jetzt richtig zugeordnet, um den Vorgang noch einmal zu versuchen (crrev.com/c/4667156, Fehler 4459).
  • Mobile Emulation: Die Inferenzlogik für clientHints.mobile wurde korrigiert. Sie wird jetzt korrekt aus userAgent unter Android abgeleitet und ist auf anderen Plattformen standardmäßig „false“. Damit wird ein Problem behoben, bei dem Tablets fälschlicherweise als Mobilgeräte gemeldet wurden (crrev.com/c/4649348, Fehler 4243).
  • Sitzungserstellung: Die Sitzungserstellung wurde aktualisiert, damit bei einem Fehler der Standardfehlercode SessionNotCreated zurückgegeben wird. Dies entspricht der W3C WebDriver-Spezifikation (crrev.com/c/4638223, Fehler 4379). Hinweis: Diese Änderung wurde später rückgängig gemacht, da für einige bestimmte Codepfade unterschiedliche Fehlercodes erforderlich sind (crrev.com/c/4651188).

Interne Änderungen und Refaktorierungen

  • Die manuellen Skripts für die ChromeDriver-Veröffentlichung wurden entfernt, da ChromeDriver jetzt vollständig in den Chrome-Veröffentlichungsprozess integriert ist und über die Chrome for Testing-Infrastruktur verfügbar ist (crrev.com/c/4520687, Fehler 4142).
  • Die WPT-Infrastruktur (Web Platform Tests) wurde migriert, um den offiziellen wptrunner-Harness anstelle des benutzerdefinierten run_webdriver_tests.py zu verwenden. Dadurch werden Ausführungsgeschwindigkeit und Zuverlässigkeit deutlich verbessert und ChromeDriver wird zwischen den Tests neu gestartet, um Abstürze zu isolieren (crrev.com/c/4723147, crrev.com/c/4676070, crrev.com/c/4639168).
  • ChromeLauncher und zugehörige Klassen wurden umfassend refaktoriert, um die Umstellung auf Pipes zu unterstützen, die Kopplung mit DevToolsHttpClient zu lockern und die WebSocket-Logik in dedizierte Branches zu verschieben (crrev.com/c/4632801, crrev.com/c/4674345).
  • Das irreführende Feld BrowserInfo.is_headless wurde zur besseren Verständlichkeit in BrowserInfo.is_headless_shell umbenannt (crrev.com/c/4650452, Fehler 4358).
  • Verschiedene eingestellte base::Value-Methoden wurden im gesamten Code durch die modernen base::Value::Dict-Entsprechungen ersetzt, z.B. FindDouble(), Set() und size() (crrev.com/c/4258936, crrev.com/c/4336805, crrev.com/c/4461067).112.0.5603.0, 113.0.5653.0, 114.0.5733.0
  • Die Verwendung von [w]ctype.h wurde zugunsten sichererer Dienstprogramme für Basis-Strings entfernt und es wurden neue Funktionen für base::expected implementiert (crrev.com/c/4749459, crrev.com/c/4755226).
  • Die Automatisierungsbefehle get_fedcm_dialog_title und select_fedcm_account wurden in TestDriver für FedCM-WPTs implementiert (crrev.com/c/4618303).
  • Die Build-Skripts für den BiDi-Mapper wurden aktualisiert, damit sie unabhängig vom aktuellen Arbeitsverzeichnis korrekt funktionieren (crrev.com/c/4670550).
  • Konvertierte /chrome/test/chromedriver-Dateien für die Verwendung von ARC (Automatic Reference Counting) in macOS-Builds und fügte den erforderlichen Boilerplate-Code hinzu (crrev.com/c/4663602).
  • Es wurde versucht, die Pipe-Kommunikation standardmäßig über einen automatisierten Rubber-Stamper-Commit zu deaktivieren, aber die Änderung betraf nur die Konfiguration, ohne das zuvor eingeführte Standardverhalten von Pipes zu ändern (crrev.com/c/4683947).

ChromeDriver 116

Neue Funktionen

  • FedCM: Es wurde eine neue Funktion hinzugefügt, mit der Clients prüfen können, ob ChromeDriver FedCM-Befehle unterstützt, ohne sie ausführen zu müssen, und Fehler abfangen können (crrev.com/c/4624924, Fehler 1356159).
  • Tests: Die Wiederverwendung von Testfenstern für Testharness-Tests, die über ChromeDriver in wptrunner ausgeführt werden, wurde aktiviert, um die Auswirkungen auf Leistung und Instabilität zu bewerten (crrev.com/c/4515180, Fehler 1394572).

Diverse Fehlerkorrekturen

  • C++-Standardkonformität: Es wurde ein undefiniertes Verhalten behoben, das durch die falsche Verwendung von Enumerationen mit Bereich (enum class) direkt in Formatierungsstrings verursacht wurde. Dadurch werden neue Clang-Compilerwarnungen behoben (crrev.com/c/4628112, Fehler 1456289).
  • FedCM: Eine potenzielle Ursache für Testinstabilität wurde behoben, indem ein Grenzfall korrigiert wurde, der die korrekte Funktion von setdelayenabled verhindert hat (crrev.com/c/4606064, Fehler 1453412).

Interne Änderungen und Refaktorierungen

  • BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert und das Build-Script so angepasst, dass standardmäßig die aktuelle Revision aus „main“ abgerufen wird (crrev.com/c/4615087, crrev.com/c/4615791, Fehler 4226).
  • ChromeDriver wurde so umgestellt, dass alle Dateien explizit mit UTF-8-Codierung geöffnet und geschrieben werden (crrev.com/c/4614522).
  • ChromeImpl wurde umgestaltet, um die Abhängigkeit von DevToolsHttpClient zu beseitigen. Außerdem wurde die Verwendung von SyncWebSocketFactory und BrowserInfo reduziert, um die Kommunikation über Pipes anstelle von WebSockets vorzubereiten (crrev.com/c/4571690, crrev.com/c/4571199, Fehler 3480).
  • Der eingestellte „Standardmodus“ für Fenced Frames wurde entfernt und die zugehörigen Tests wurden aktualisiert, um das neue Funktions-Flag zu aktivieren und die Migration zu FLEDGE-Auktionen fortzusetzen (crrev.com/c/4558645).
  • Die FedCM-Tests wurden verbessert, indem generische WaitForCondition-Assertionen durch assertTrue ersetzt wurden, um deutlich anzuzeigen, wann Zeitüberschreitungen auftreten (crrev.com/c/4590211).
  • Bekannte instabile Warnungen zu nicht mehr vorhandenen raw_ptr in linux-rel-Unittests wurden als instabil markiert (crrev.com/c/4598070).
  • Die OWNERS-Datei für den BiDi-Mapper wurde aktualisiert (crrev.com/c/4614518).

ChromeDriver 115

Neue Funktionen

  • Mobile Emulation: Unterstützung für User-Agent Client Hints in der mobilen Emulation implementiert, sodass ChromeDriver Client Hints aus Funktionen und Voreinstellungen parsen und an Chrome übergeben kann (crrev.com/c/4498667, crrev.com/c/4466129, Fehler 4243).
  • Mobile Emulation: Die Voreinstellungen für die mobile Emulation wurden aktualisiert, sodass bei der Ersetzung des Formatstrings %s im User-Agent die Hauptversion des Hostbrowsers anstelle der ChromeDriver-Version verwendet wird (crrev.com/c/4502850, Fehler 4243).
  • Einrichtung: Es wurde Unterstützung für das Herunterladen einer bestimmten ChromeDriver-Version für einen bestimmten Channel hinzugefügt. Dadurch werden Automatisierungsszenarien verbessert, in denen ChromeDriver auf einer anderen Plattform (z. B. Android/WebView) als der Host ausgeführt wird (crrev.com/c/4550281).116.0.5791.0

Diverse Fehlerkorrekturen

  • Klassisch: Es wurde ein Problem behoben, bei dem beim Auflösen eines Knotens fälschlicherweise ein UnknownError anstelle des Standardfehlers NoSuchElement zurückgegeben wurde (crrev.com/c/4508952, Fehler 4440).
  • Mobile Emulation: Den Voreinstellungen für die mobile Emulation wurden strengere Zusicherungen hinzugefügt, um zu erzwingen, dass das clientHints.mobile-Flag „true“ sein muss, wenn der userAgent-String „Mobile“ enthält (crrev.com/c/4507142, Fehler 4243).
  • Mobile Emulation: Migrierte DeviceMetrics-Überschreibungen verwenden jetzt den Emulation.setDeviceMetricsOverride-CDP-Befehl anstelle des eingestellten Page-Domainäquivalents (crrev.com/c/4502614, Fehler 4243).

Interne Änderungen und Refaktorierungen

  • BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert, wodurch Funktionen für die detaillierte Serialisierung möglich sind (crrev.com/c/4535936, crrev.com/c/4512195).
  • Die eingestellte Methode Connect wurde aus DevToolsClient entfernt, um die Migration von ChromeDriver zur Kommunikation über Pipes vorzubereiten (crrev.com/c/4521485, Fehler 3480).
  • Die Codebasis wurde so migriert, dass base::Value::Dict gegenüber base::Value bevorzugt wird. Außerdem wurden eingestellte Methoden wie FindStringKey(), SetKey() und SetByDottedPath() ersetzt (crrev.com/c/4529788, crrev.com/c/4522701, crrev.com/c/4515800, crrev.com/c/4507150).
  • Es werden jetzt string_util.h-Funktionen anstelle von [w]ctype.h für sicherere Typkonvertierungen verwendet (crrev.com/c/4529187).
  • Die Logik zum Laden von Seed-Dateien wurde so geändert, dass absolute Pfade verwendet werden, um die Konsistenz zu gewährleisten, wenn Skripts und Chrome an verschiedenen Orten ausgeführt werden (crrev.com/c/4504656).
  • Die ungenutzte Methode CallAsyncFunction() wurde aus web_view.h entfernt (crrev.com/c/4518363, Fehler 3376).
  • Der Name von base::raw_ptr wurde automatisch in raw_ptr umbenannt, um den Vorgaben des Styleguides zu entsprechen (crrev.com/c/4476651).

ChromeDriver 114

Neue Funktionen

  • Klassisch: MobileDevice-Informationen wurden an MobileEmulationOverrideManager übergeben, um die Grundlage für zukünftige Client-Hinweise und User-Agent-Überschreibungen zu schaffen (crrev.com/c/4447524).
  • Tests: Testvorrichtungen für ChromeDriver hinzugefügt (crrev.com/c/4459939).

Diverse Fehlerkorrekturen

  • Headless: Ein Absturz im neuen Headless-Modus wurde behoben, indem skriptgesteuerte Druckvorschauanfragen (z. B. window.print()) ignoriert werden. Das Verhalten wurde an den alten Headless-Modus angepasst (crrev.com/c/4436313, Fehler 4385).
  • Funktionen: Ein Use-After-Move-Fehler in ChromeDriver-Funktionen wurde behoben (crrev.com/c/4462094, Fehler 4243).
  • DevTools: In DevToolsClientImpl::SendCommandInternal wurde ein DCHECK entfernt, um Abstürze zu verhindern, wenn die Verbindung zu den Entwicklertools unterbrochen wird, da dies keinen Invariantenverstoß darstellt (crrev.com/c/4370486, Fehler 4385).

Interne Änderungen und Refaktorierungen

  • BiDi: Die BiDi Mapper-Abhängigkeit wurde aktualisiert (crrev.com/c/4418727).
  • Es wurden mehrere Warnungen zu nicht initialisierten Zeigern während der Testausführung von Unittests behoben, indem nicht zugeordnete Referenzen und die lokale Zerstörung in WebViewImpl und Leistungsprotokollierungstests richtig verwaltet wurden (crrev.com/c/4374824, crrev.com/c/4368179).
  • Die migrierte Codebasis verwendet die neue base::Value v2-API und ersetzt eingestellte Methoden wie Value::SetPath(), Value::SetStringPath() und base::ListValue (crrev.com/c/4452309, crrev.com/c/4431420, crrev.com/c/4422897, crrev.com/c/4377520).
  • Alle Verwendungen von base::GUID wurden durch base::Uuid ersetzt, um der Umbenennung der Core-Basisbibliothek (crrev.com/c/4455083) zu entsprechen.
  • Es wurden verschiedene Codebereinigungen durchgeführt, darunter das Kürzen von Code, die Verwendung monadischer Operationen für expected, das Entfernen von nicht verwendetem Code und das Beheben von Stilverstößen (crrev.com/c/4475368, crrev.com/c/4464199).
  • Die Tests mit Fenced Frames wurden aktualisiert, sodass das Attribut config anstelle des eingestellten Attributs src verwendet wird (crrev.com/c/4382231).
  • Die ineffektive Verwendung von ShadowDOMV0 wurde entfernt (crrev.com/c/4388302).
  • Die Ergänzung eines Flags für einen Skia-PDF-Fix (SK_IGNORE_PDF_EOF_NEWLINE_FIX) wurde zurückgesetzt, um eine neue Baseline zu ermöglichen (crrev.com/c/4401451).
  • Der Inhaber des ChromeDriver-Testskripts wurde aktualisiert und es wurden Anpassungen vorgenommen, um die Konfigurations-JSON ausschließlich für Pinpoint zu generieren (crrev.com/c/4437492, crrev.com/c/4298554).
  • Ein fehlender Include-Befehl (<cstring>) für std::strlen in web_view_impl.cc wurde hinzugefügt, um ein IWYU-Build-Problem zu beheben (crrev.com/c/4376772).
  • Eine nicht verwendete Testdatei (orientation_test.html) wurde entfernt (crrev.com/c/4335668).

ChromeDriver 113.0.5672.63

Unterstützt Chrome-Version 113

  • Behobenes Problem 4205: Dieselben Objekt-IDs in Classic und BiDi [Pri-1]
  • Problem 4302 behoben: Es wird nicht davon ausgegangen, dass sich Mapper auf dem ersten Tab in „ExecuteGetWindowHandles“ befindet [Pri-1]
  • Problem 4356 behoben: Chrome 110 verwendet den Einstellungs-Wert „download.default_directory“ nicht [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 113.0.5672.24

Unterstützt Chrome-Version 113

  • Behobenes Problem 4205: Dieselben Objekt-IDs in Classic und BiDi [Pri-1]
  • Problem 4302 behoben: Es wird nicht davon ausgegangen, dass sich Mapper auf dem ersten Tab in „ExecuteGetWindowHandles“ befindet [Pri-1]
  • Problem 4356 behoben: Chrome 110 verwendet den Einstellungs-Wert „download.default_directory“ nicht [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 112.0.5615.49

Unterstützt Chrome-Version 112

  • Problem 3517 behoben: Druckfunktion für nicht-headless [Pri-] aktivieren
  • Problem 4419 behoben: Hoher Overhead bei Speedometer bei Verwendung von Chromedriver [Pri-3]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 112.0.5615.28

Unterstützt Chrome-Version 112

  • Behobenes Problem 4357: Chromedriver-Version 110.0.5481.77 – Sitzungsproblem mit den Optionen „--headless“ und „--user-data-dir“. [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 111.0.5563.64

Unterstützt Chrome-Version 111

  • Behobenes Problem 4216: ChromeDriver mit benutzerdefiniertem BiDiMapper ausführen [Pri-]
  • Problem 4300 behoben: Fenster-Handle ist zwischen Classic und BiDi interoperabel [Pri-]
  • Behobenes Problem 4325: Die Verarbeitung von „toJSON“ in „jsonSerialize“ von „call_function.js“ weicht vom Standard ab. [Pri-]
  • Problem 4330 behoben: DCHECK schlägt bei DevToolsClientImpl::AddListener fehl [Pri-]
  • Behobenes Problem 4357: ChromeDriver-Sitzungsproblem mit den Optionen „--headless“ und „--user-data-dir“ [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 111.0.5563.41

Unterstützt Chrome-Version 111

  • Behobenes Problem 4357: ChromeDriver-Sitzungsproblem mit den Optionen „--headless“ und „--user-data-dir“ [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 111.0.5563.19

Unterstützt Chrome-Version 111

  • Behobenes Problem 4216: ChromeDriver mit benutzerdefiniertem BiDiMapper ausführen [Pri-]
  • Problem 4300 behoben: Fenster-Handle ist zwischen Classic und BiDi interoperabel [Pri-]
  • Behobenes Problem 4325: Die Verarbeitung von „toJSON“ in „jsonSerialize“ von „call_function.js“ weicht vom Standard ab. [Pri-]
  • Problem 4330 behoben: DCHECK schlägt bei DevToolsClientImpl::AddListener fehl [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 110.0.5481.77

Unterstützt Chrome-Version 110

  • Problem 4193 behoben: Neue Sitzung konnte unter Android 13 nicht gestartet werden [Pri-]
  • Problem 4272 behoben: WebSocket sollte code=0 als Hinweis auf FIN behandeln [Pri-]
  • Problem 4276 behoben: Verbindungsprobleme in ChromeDriver behoben [Pri-]
  • Behobenes Problem 4295: ChromeDriver mit "webSocketUrl": true ist racy [Pri-]
  • Problem 4297 behoben: ChromeDriver Bidi serialisiert falsch [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 110.0.5481.30

Unterstützt Chrome-Version 110

  • Problem 4193 behoben: Neue Sitzung konnte unter Android 13 nicht gestartet werden [Pri-]
  • Problem 4272 behoben: WebSocket sollte code=0 als Hinweis auf FIN behandeln [Pri-]
  • Problem 4276 behoben: Verbindungsprobleme in ChromeDriver behoben [Pri-]
  • Behobenes Problem 4295: ChromeDriver mit "webSocketUrl": true ist racy [Pri-]
  • Problem 4297 behoben: ChromeDriver Bidi serialisiert falsch [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 109.0.5414.74

Unterstützt Chrome-Version 109

  • Behobenes Problem 4179: BiDi-Sitzung muss mehrere Verbindungen unterstützen [Pri-]
  • Behobenes Problem 4203: Informationen zu Credits verbessern [Pri-]
  • Problem 4263 behoben: Absturz bei Meta+A [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 109.0.5414.25

Unterstützt Chrome-Version 109

  • Behobenes Problem 4179: BiDi-Sitzung muss mehrere Verbindungen unterstützen [Pri-]
  • Behobenes Problem 4203: Informationen zu Credits verbessern [Pri-]
  • Problem 4263 behoben: Absturz bei Meta+A [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 108.0.5359.71

Unterstützt Chrome-Version 108 Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 108.0.5359.22

Unterstützt Chrome-Version 108

  • Problem 4204 behoben: Fehler im WPT-Test „test_top_level_and_one_child“ behoben [Pri-]
  • Behobenes Problem 4215: Build „chromedriver_mac64_m1“ in „chromedriver_mac_arm64“ umbenennen [Pri-]
  • Problem 4221 behoben: Absturz, wenn der Browser durch einen Klickbefehl geschlossen wird [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 107.0.5304.62

Unterstützt Chrome-Version 107

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 107.0.5304.18

Unterstützt Chrome-Version 107

  • Problem 4180 behoben: Die Verarbeitung von BiDi-Befehlen wird erst gestartet, wenn eine Benachrichtigung erfolgt, dass BiDiMapper gestartet wurde [Pri-]
  • Behobenes Problem 4198: ChromeDriver BiDi sollte nicht davon ausgehen, dass sich BiDiMapper immer auf dem ersten Tab befindet [Pri-]
  • Behobenes Problem 4207: WebDriver-Fehler beim Ausführen von WPT [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 106.0.5249.61

Unterstützt Chrome-Version 106

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 106.0.5249.21

Unterstützt Chrome-Version 106

  • Behobenes Problem 4016: Grundlegende BiDi-Unterstützung für ChromeDriver (Mapper-basiert) hinzufügen [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 105.0.5195.52

Unterstützt Chrome-Version 105

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 105.0.5195.19

Unterstützte Chrome-Version

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 104.0.5112.79

Unterstützt Chrome-Version 104

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 104.0.5112.29

Unterstützt Chrome-Version 104

  • Problem 4121 behoben: WebDriver-Befehl schlägt manchmal mit „unexpected command response“ (unerwartete Befehlsantwort) fehl [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 104.0.5112.20

Unterstützt Chrome-Version 104

  • Problem 4121 behoben: WebDriver-Befehl schlägt manchmal mit „unexpected command response“ (unerwartete Befehlsantwort) fehl [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 103.0.5060.134

Unterstützt Chrome-Version 103

  • Problem 4048 behoben: target frame detached [Pri-]
  • Problem 4121 behoben: WebDriver-Befehl schlägt manchmal mit „unexpected command response“ (unerwartete Befehlsantwort) fehl [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 103.0.5060.53

Unterstützt Chrome-Version 103

  • Problem 4048 behoben: target frame detached [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 103.0.5060.24

Unterstützt Chrome-Version 103

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 102.0.5005.61

Unterstützt Chrome-Version 102

  • Problem 1309282 behoben: „chromedriver“ unterstützt keine Switches mit mehreren Werten [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 102.0.5005.27

Unterstützt Chrome-Version 102

  • Problem 1309282 behoben: „chromedriver“ unterstützt keine Switches mit mehreren Werten [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 101.0.4951.41

Unterstützt Chrome-Version 101

  • Problem 4046 behoben: DCHECK wird beim Anhängen eines leeren umzäunten Frames ausgelöst [Pri-]
  • Problem 4080 behoben: Wechsel zu verschachteltem Frame schlägt fehl [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 101.0.4951.15

Unterstützt Chrome-Version 101

  • Problem 4046 behoben: DCHECK wird beim Anhängen eines leeren umzäunten Frames ausgelöst [Pri-]
  • Problem 4080 behoben: Wechsel zu verschachteltem Frame schlägt fehl [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 100.0.4896.60

Unterstützt Chrome-Version 100

  • Problem 4002 behoben: Unterstützung für Fenced Frames [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 100.0.4896.20

Unterstützt Chrome-Version 100

  • Problem 4002 behoben: Unterstützung für Fenced Frames [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 99.0.4844.51

Unterstützt Chrome-Version 99

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 99.0.4844.35

Unterstützt Chrome-Version 99

  • RÜCKGEBUCHT!!! Problem 2269 behoben: Nicht-BMP-Zeichen (Codepunkte über U+FFFF) können nicht verwendet werden [Pri-3]
  • Behobenes Problem 1295243: Regression in ChromeDriver sendKeys [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 99.0.4844.17

Unterstützt Chrome-Version 99

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 98.0.4758.102

Unterstützt Chrome-Version 98

  • Problem 3933 behoben: Klick am Rand des Viewports ist ohne Fehler ineffektiv [Pri-]
  • RÜCKGEBUCHT!!! Problem 2269 behoben: Nicht-BMP-Zeichen (Codepunkte über U+FFFF) können nicht verwendet werden [Pri-3]
  • Behobenes Problem 1295243: Regression in ChromeDriver sendKeys [Pri-1]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 98.0.4758.80

Unterstützt Chrome-Version 98

  • Problem 3933 behoben: Klick am Rand des Viewports ist ohne Fehler ineffektiv [Pri-]
  • Problem 2269 behoben: Nicht-BMP-Zeichen (Codepunkte über U+FFFF) können nicht verwendet werden [Pri-3]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 98.0.4758.48

Unterstützt Chrome-Version 98

  • Problem 3933 behoben: Klick am Rand des Viewports ist ohne Fehler ineffektiv [Pri-]
  • Problem 2269 behoben: Nicht-BMP-Zeichen (Codepunkte über U+FFFF) können nicht verwendet werden [Pri-3]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 97.0.4692.71

Unterstützt Chrome-Version 97

  • Behobenes Problem 3878: Bessere Verarbeitung von Koordinaten mit Nachkommastellen für Elementklicks [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 97.0.4692.36

Unterstützt Chrome-Version 97

  • Problem 3878 behoben: Bessere Verarbeitung von Koordinaten mit Nachkommastellen für Elementklicks [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 97.0.4692.20

Unterstützt Chrome-Version 97

  • Problem 3878 behoben: Bessere Verarbeitung von Koordinaten mit Nachkommastellen für Elementklicks [Pri-]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 96.0.4664.45

Unterstützt Chrome 96

  • Problem 3445 behoben: Es ist nicht möglich, auf Elemente in einem iFrame innerhalb eines Shadow Root zuzugreifen [Pri-3]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 96.0.4664.35

Unterstützt Chrome 96

  • Problem 3445 behoben: Es ist nicht möglich, auf Elemente in einem iFrame innerhalb eines Shadow Root zuzugreifen [Pri-3]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 96.0.4664.18

Unterstützt Chrome 96

  • Problem 3445 behoben: Es ist nicht möglich, auf Elemente in einem iFrame innerhalb eines Shadow Root zuzugreifen [Pri-3]

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 95.0.4638.69

Unterstützt Chrome-Version 95

  • Behobenes Problem 3857: Host-Header oder Origin-Header ist angegeben und nicht auf der weißen Liste oder localhost [Pri-1]
  • --allowed-origins-Argument hinzugefügt

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 95.0.4638.54

Unterstützt Chrome-Version 95

  • Behobenes Problem 3857: Host-Header oder Origin-Header ist angegeben und nicht auf der weißen Liste oder localhost [Pri-1]
  • --allowed-origins-Argument hinzugefügt

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 95.0.4638.17

Unterstützt Chrome-Version 95

  • Behobenes Problem 3857: Host-Header oder Origin-Header ist angegeben und nicht auf der weißen Liste oder localhost [Pri-1]
  • --allowed-origins-Argument hinzugefügt

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 95.0.4638.10

Unterstützt Chrome-Version 95

  • Behobenes Problem 3857: Host-Header oder Origin-Header ist angegeben und nicht auf der weißen Liste oder localhost [Pri-1]
  • --allowed-origins-Argument hinzugefügt

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 94.0.4606.113

Unterstützt Chrome-Version 94

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 94.0.4606.61

Unterstützt Chrome-Version 94

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 94.0.4606.41

Unterstützt Chrome-Version 94

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 93.0.4577.63

Unterstützt Chrome-Version 93

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 93.0.4577.15

Unterstützt Chrome-Version 93

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 92.0.4515.107

Unterstützt Chrome-Version 92

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 92.0.4515.43

Unterstützt Chrome-Version 92

  • Behobenes Problem 3389: Hostvalidierung für ChromeDriver-Anfragen

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 91.0.4472.101

Unterstützt Chrome-Version 91

  • Behobenes Problem 1205107: Attributwert für Felder in der Webanwendung kann nicht abgerufen werden.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 91.0.4472.19

Unterstützt Chrome-Version 91

  • Behobenes Problem 3744: SendKeys() und Click() schlagen nach der Linknavigation ohne Fehlermeldung fehl
  • Behobenes Problem 3746: Werte werden am Attributendpunkt fälschlicherweise aktualisiert

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 90.0.4430.24

Unterstützt Chrome-Version 90

  • Problem 3708 behoben: „inView“ von „GetElementLocation“ schlägt für Elemente im Shadow DOM fehl
  • Behobenes Problem 3721: Leistungsprotokoll für Service Worker erfassen, wenn aktiviert
  • Behobenes Problem 3731: „AdbImpl::GetPidByName“ funktioniert nicht richtig auf nicht standardmäßigen Android-Betriebssystemen wie OnePlus.
  • Behobenes Problem 3733: Schwerwiegender Fehler bei Domain auf localhost
  • Problem 3734 behoben: Der Treiber sollte einen Fehler ausgeben, wenn versucht wird, ein Cookie für die falsche Domain festzulegen.
  • Problem 3743 behoben: Call-Funktion überarbeitet und Problem beim Entfernen von Elementen behoben

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 89.0.4389.23

Unterstützt Chrome-Version 89

  • Gelöstes Problem 3667: Zeitüberschreitung beim Empfangen einer Nachricht vom Renderer
  • Problem 3675 behoben: „GetElementLocation“ verwendet die Methode „inView“, die boolesche Werte als Array falsch verarbeitet.
  • Problem 3682 wurde behoben: „GetElementRegion“ gibt für Elemente, die sich teilweise außerhalb des Darstellungsbereichs befinden, die falsche Größe zurück.
  • Behobenes Problem 3690: ChromeDriver schlägt fehl, wenn Erweiterungen die chrome.windows API verwenden

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 88.0.4324.96

Unterstützt Chrome-Version 88

  • Problem 3641 behoben: Seite wird nicht geladen/gerendert, wenn das Browserfenster mit Chrome Beta v87 und Chromedriver v(87/86) nicht im Vordergrund ist

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 88.0.4324.27

Unterstützt Chrome-Version 88

  • Problem 3611 behoben: getText()-Ausgabe in Protractor unterscheidet sich von <element>.innerText
  • Problem 3625 behoben: Kompatibilität von Element-Screenshots verbessert
  • Problem 3628 behoben: „Stale Element Reference“ und falsche URL werden zurückgegeben, wenn eine URL eine andere URL als Teil ihres Pfads enthält.
  • Behobenes Problem 3631: Unterstützung für die Funktion webauthn:extension:largeBlob hinzugefügt
  • Problem 3635 behoben: Chromedriver 86 – Das Unload-Ereignis wird anscheinend nicht richtig übergebenchromedriver.quit()
  • Problem 3649 behoben: Das Kopieren von ausgewähltem Text in die Zwischenablage funktioniert unter Windows 10 im Headless-Modus nicht.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 87.0.4280.88

Unterstützt Chrome-Version 87

  • Problem 3641 behoben: Seite wird nicht geladen/gerendert, wenn das Browserfenster mit Chrome Beta v87 und Chromedriver v(87/86) nicht im Vordergrund ist
  • Problem 3657 behoben: Zeitüberschreitung beim Screenshot-Hintergrundbrowser

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 87.0.4280.20

Unterstützt Chrome-Version 87

  • Problem 2421 behoben: Alte Portweiterleitungskanäle auf dem Android-ADB-Server löschen
  • Behobenes Problem 3474: Liste der emulierten Mobilgeräte muss aktualisiert werden
  • Behobenes Problem 3507: „get computed role“ implementieren
  • Problem 3508 behoben: „get computed label“ implementieren
  • Behobenes Problem 3584: Befehlszeilenoption „--whitelisted-ips“ von ChromeDriver umbenennen
  • Gelöstes Problem 3588: Bidirektionale WebSocket-Verbindung
  • Problem 3594 behoben: Die Navigation wird vorzeitig abgeschlossen, wenn das OOPIF vor der Hauptseite geladen wird.
  • Behobenes Problem 3598: Befehlszeilenoption für den DevTools-Port, der an den Socket „webview_devtools_remote“ weitergeleitet werden soll
  • Problem 3608 behoben: „Chromedriver debuggerAddress doesn't support ipv6“ (Chromedriver-DebuggerAddress unterstützt kein IPv6)

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 86.0.4240.22

Unterstützt Chrome-Version 86

  • Problem 3370 behoben: Chrome wird ordnungsgemäß heruntergefahren, andernfalls wird das Cookie nicht korrekt in der SQLite-Datei gespeichert.
  • Behobenes Problem 3401: Mit „Get Element Location JS“ wird nicht der sichtbare Mittelpunkt des Elements ermittelt.
  • Problem 3462 behoben: Bei „sendKeys“ funktioniert die CMD-Taste auf dem Mac nicht.
  • Behobenes Problem 3541: Protokollierung zwischen Client und ChromeDriver verbessern
  • Problem 3559 behoben: Chrome-Version ausgeben, wenn ChromeDriver als inkompatibel gemeldet wird

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 85.0.4183.87

Unterstützt Chrome-Version 85

  • Problem 3578 behoben: In Chrome 85 ist keine reibungslose Interaktion mit Fenstern mehr möglich, wenn ein Benachrichtigungsdialogfeld geöffnet ist.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 85.0.4183.83

Unterstützt Chrome-Version 85

  • Behobenes Problem 3577: ChromeDriver 85 erkennt das geänderte Chrome-Verzeichnis (C:\Programme) nicht.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 85.0.4183.38

Unterstützt Chrome-Version 85

  • Behobenes Problem 3214: ChromeDriver78: Sendkeys setzt die Textauswahl mit contenteditable zurück
  • Behobenes Problem 3376: „LaunchApp“-Befehl aus ChromeDriver entfernen
  • Problem 3432 behoben: Manchmal erkennt NavigationTracker nicht, wenn das Laden der Seite abgeschlossen ist.
  • Problem 3481 behoben: Neuer Druckendpunkt gemäß W3C-Spezifikation
  • Problem 3488 behoben: „driver.get“ löst keinen Fehler aus, wenn der Proxy falsch konfiguriert ist
  • Behobenes Problem 3502: Mit document.hasFocus() prüfen, ob das Element den Fokus hat
  • Behobenes Problem 3515: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 84.0.4147.30

Unterstützt Chrome-Version 84

  • Problem 3420 behoben: Nach dem Wechsel zum Druckfenster reagiert der Chromedriver nicht mehr
  • Problem 3421 behoben: Der Treiber gibt kyrillischen Text ohne Formatierungen zurück.
  • Problem 3422 behoben: „GetElementText“ funktioniert nicht mit Prototype 1.6.0.3
  • Behobenes Problem 3434: „assert“-Meldungen können nicht aus den „browser“-Logs abgerufen werden

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 83.0.4103.39

Unterstützt Chrome-Version 83

  • Chromedriver wurde aktualisiert, damit er korrekt mit prototype.js funktioniert.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 83.0.4103.14

Unterstützt Chrome-Version 83

  • Behobenes Problem 1778: launchApp aus ChromeDriver entfernen
  • Problem 2520 behoben: „InitSession“ kann unendlich lange warten, wenn Chrome nicht reagiert
  • Gelöstes Problem 3120: Download im monitorlosen Modus über neuen Tab
  • Behobenes Problem 3234: Bestätigen, dass vor dem Teilstring ein Semikolon gefunden wurde
  • Behobenes Problem 3240: „ExecuteGetElementRect“ prüft den zurückgegebenen Status von „GET_SIZE“ nicht
  • Behobenes Problem 3331: Die get_cookies()-Methode gibt „expiry“-Schlüssel vom Typ „double“ zurück, sollte im W3C-Modus aber „int64“ zurückgeben.
  • Gelöstes Problem 3332: Zeitüberschreitung bei Wiederholungsversuch als schwerwiegend protokolliert
  • Problem 3339 behoben: Chromedriver wurde unerwartet mit dem Code „null“ und dem Signal „SIGTRAP“ beendet.
  • Behobenes Problem 3351: Meldung zu Sicherheitsaspekten verbessern
  • Gelöstes Problem 3352: SendKeys für Farbelemente unterstützen
  • Behobenes Problem 3353: „Wait for Pending Navigation“ wird fortgesetzt, nachdem der Frame-Kontext zerstört wurde
  • Behobenes Problem 3375: Chromedriver v80 bleibt auf einigen Websites bei getPageSource hängen
  • Behobenes Problem 3383: ChromeDriver 80+ unter Windows beendet oder stoppt bei bestimmten Element- oder Klickbefehlen
  • Gelöstes Problem 3399: Entfernen der „wasThrown“-Prüfung

ChromeDriver 81.0.4044.138

Unterstützt Chrome-Version 81

  • Chromedriver wurde aktualisiert, damit er korrekt mit prototype.js funktioniert.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 81.0.4044.69

Unterstützt Chrome-Version 81

  • Behoben: Chromedriver stürzt auf einigen Websites bei getPageSource ab.
    • Behoben: ChromeDriver stürzt bei bestimmten Element- oder Klickbefehlen ab.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 81.0.4044.20

Unterstützt Chrome-Version 81

  • Ein Fehler beim Versuch, den Speicherort eines HTML-Elements abzurufen, wurde behoben.
    • Die Befehle „Get Cookie“ und „Add Cookie“ sind jetzt framespezifisch.
    • Es wurden einige Probleme behoben, die bei Websites auftreten, auf denen Standard-JavaScript-Objekte neu definiert werden.
    • ChromeDriver wartet weiterhin auf den Abschluss des Ladevorgangs, nachdem eine Meldung vom Typ „Target Closed“ empfangen wurde.
    • Chromedriver gibt jetzt einen spezifikationskonformen Fehlercode für Zeitüberschreitungen zurück
    • Behoben: Unerwartet langsame Reaktionszeit von ChromeDriver beim Befehl „NewSession“.
    • Benutzerdefinierte Zeitüberschreitungen von mehr als 10 Minuten werden jetzt unterstützt.
    • Behoben: ChromeDriver konnte aufgrund einer Diskrepanz zwischen IPv4 und IPv6 keine Verbindung zu den Entwicklertools herstellen.
    • Die Suchreihenfolge für das Chrome-Binärprogramm unter Linux wurde wiederhergestellt.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 80.0.3987.106

Unterstützt Chrome-Version 80

  • Wiederherstellung der Suchreihenfolge für das Chrome-Binärprogramm unter Linux

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 80.0.3987.16

Unterstützt Chrome-Version 80

  • Das Problem, dass das Laden der Seite bei Verwendung eines Proxys abgebrochen wurde, wurde behoben.
  • Chromedriver wartet jetzt, bis der aktuelle Frame geladen ist.
  • Das ChromeDriver-Log enthält den vom Treiber verwendeten Port.
  • „SetGeoLocation“ für den W3C-Modus aktiviert.
  • Es wurde der fehlende Warnungstext für den Status „UnexpectedAlertOpen“ hinzugefügt.
  • Die Meldung beim Laden einer CRX2-Erweiterung wurde verbessert.
  • Es wurde eine potenzielle Race-Bedingung in „ExecuteGetPageSource“ behoben.
  • ChromeDriver fügt das Flag „--ignore-certificate-errors“ hinzu, wenn die Funktion „acceptInsecureCerts“ auf „true“ gesetzt ist.
  • Fehlermeldung und Rückgabestatus für „no such execution context“ aktualisiert
  • Behoben: ChromeDriver kann unbegrenzt blockieren, während auf eine ausstehende Navigation gewartet wird.
  • Das SameSite-Attribut wurde zu AddCookie und GetCookie hinzugefügt.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 79.0.3945.36

Unterstützt Chrome-Version 79

Enthält die folgende Änderung gegenüber Version 79.0.3945.16:

  • Falsche Berechnung der Elementkoordinaten korrigiert

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 79.0.3945.16

Unterstützt Chrome-Version 79

  • Behebung eines ChromeDriver-Absturzes, der durch einen JavaScript-Hinweis ausgelöst wurde, der während der Befehlsausführung ausgelöst wurde
    • Ein Fehler wurde behoben, der dazu führte, dass Chromedriver gesperrt wurde, wenn beim Erstellen eines Screenshots eine Warnung ausgelöst wurde.
    • „--ignore-certificate-errors“ aus dem Chrome-Startbefehl entfernt
    • „platform“ und „platformName“ in „windows“ unter Win10 geändert
    • Fehler behoben: „window.navigator.webdriver“ war nicht definiert, wenn „enable-automation“ ausgeschlossen wurde
  • Der WPT-Test „test_not_editable_inputs[hidden]“ wurde korrigiert.
    • Das Problem „Element is not clickable“ (Element ist nicht klickbar) bei Verwendung des monitorlosen Modus wurde behoben.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 78.0.3904.105

Unterstützt Chrome-Version 78

Enthält die folgende Änderung gegenüber Version 78.0.3904.70: * Falsche Berechnung von Elementkoordinaten behoben

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 78.0.3904.70

Unterstützt Chrome-Version 78

Enthält die folgende Änderung gegenüber Version 78.0.3904.11:

  • Die Änderung zur Anpassung der Screenshot-Größe auf Retina-Displays wurde aufgrund mehrerer gemeldeter Probleme rückgängig gemacht.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 78.0.3904.11

Unterstützt Chrome-Version 78

  • Es wurden mehrere Probleme bei der Serialisierung von JavaScript-Objekten behoben.
    • Fehler bei der Zuordnung von Funktionen für Chrome auf Android-Geräten behoben
    • Automatisierung von Berechtigungen implementiert
    • Feste Screenshot-Größe auf Retina-Display
  • Problem mit Zeitüberschreitung beim Seitenaufbau in bestimmten Szenarien behoben
    • Verbesserter Abgleich von „platformName“-Funktionen
    • Der Fehlercode, der beim Bewegen des Mauszeigers auf Drop-down-Listenoptionen zurückgegeben wurde, wurde behoben.
    • Ein Problem beim Herunterladen im monitorlosen Modus wurde behoben.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 77.0.3865.40

Unterstützt Chrome-Version 77

Enthält die folgenden Änderungen gegenüber Version 77.0.3865.10:

  • Zwei Fehler bei der Serialisierung und Deserialisierung von JavaScript-Objekten wurden behoben.
  • Behoben: Fehlerhafte Verarbeitung von „platformName: android“ beim Abgleichen von Funktionen

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 77.0.3865.10

Unterstützt Chrome-Version 77

  • Es wurden mehrere Probleme bei der Implementierung der Actions API behoben.
    • Verbesserte Ausführung von JavaScript-Code und Verarbeitung von Ergebnissen
    • Es wurde ein Fehler behoben, durch den POST-Anfragen mit leerem Text im OSS-Modus fälschlicherweise abgelehnt wurden.
  • Ein robusterer Navigationstracker
  • Eager-Strategie für den Seitenaufbau unterstützen
    • Befehl „New Window“ aus der W3C WebDriver-Spezifikation hinzugefügt
  • Unterstützung für das Speichern von Dateidownloads im Headless-Modus
  • Unterstützung für das Laden von CRX3-Erweiterungen hinzugefügt

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 76.0.3809.126

Unterstützt Chrome-Version 76

Enthält die folgenden Änderungen gegenüber Version 76.0.3809.68:

  • Zwei Fehler bei der Serialisierung und Deserialisierung von JavaScript-Objekten wurden behoben.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 76.0.3809.68

Unterstützt Chrome-Version 76

Enthält die folgenden Änderungen gegenüber Version 76.0.3809.25:

  • Es wurde ein Fehler bei der Erkennung von zirkulären Verweisen in JavaScript-Objekten behoben.
  • Ein Fehler wurde behoben, der dazu führte, dass ChromeDriver bei bestimmten Arten von JavaScript-Fehlern abstürzte.
  • Es wurde ein Fehler behoben, der verhindert, dass die Actions API mit Elementen im Shadow DOM interagiert.
    • Ein Fehler wurde behoben, der dazu führte, dass der Status der Modifikatortaste zwischen API-Befehlen für Aktionen nicht richtig erfasst wurde.
    • Ein Fehler beim Erfassen der Zeigerpositionen zwischen Aktionen-API-Befehlen wurde behoben.
    • Fehler „Cannot call non W3C standard command while in W3C mode“ (Nicht-W3C-Standardbefehl kann im W3C-Modus nicht aufgerufen werden) in der Logdatei speichern, wenn er auftritt

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 76.0.3809.25

Unterstützt Chrome-Version 76

Enthält die folgenden Änderungen gegenüber Version 76.0.3809.12:

  • Es wurde ein Fehler behoben, durch den POST-Anfragen mit leerem Text im OSS-Modus fälschlicherweise abgelehnt wurden.
  • Neue Endpunkte zum Abrufen von Chrome-Protokollen hinzugefügt
    • Endpunkt für den Befehl „Is Displayed“ im W3C-Modus hinzugefügt

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 76.0.3809.12

Unterstützt Chrome-Version 76

  • Implementierung der Actions API abgeschlossen
    • Verbesserte Spezifikationskonformität der Verarbeitung von Script-Timeouts
    • Verbesserte Serialisierung von Ergebnissen des Befehls „Execute Script“
    • Probleme beim Scrollen von Elementen in die Ansicht behoben
    • Unterstützung für die Verarbeitung der in der WebDriver-Spezifikation definierten Abbrechen-Taste wurde hinzugefügt.
    • Die Verarbeitung von unbehandelten Fehlermeldungen für Benachrichtigungen wurde korrigiert.
    • Feste Verarbeitung des <details>-Elements
    • Die Option „excludeSwitches“ wurde aktualisiert, um optionale führende Bindestriche in Schalternamen zuzulassen.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 75.0.3770.140

Unterstützt Chrome-Version 75

Enthält die folgenden Änderungen gegenüber Version 75.0.3770.90:

  • Ein Fehler wurde behoben, der dazu führte, dass ChromeDriver abstürzte, wenn bestimmte Arten von JavaScript-Fehlern auftraten.
  • Ein Fehler wurde behoben, bei dem der Status der Modifikatortaste zwischen Aktionen nicht beibehalten wurde.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 75.0.3770.90

Unterstützt Chrome-Version 75

Enthält die folgenden Änderungen gegenüber Version 75.0.3770.8:

  • Es wurde ein Fehler behoben, durch den POST-Anfragen mit leerem Text im OSS-Modus fälschlicherweise abgelehnt wurden.
  • Neue Endpunkte zum Abrufen von Chrome-Logs hinzugefügt

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 75.0.3770.8

Unterstützt Chrome-Version 75

Die auffälligste Änderung ist, dass ChromeDriver jetzt standardmäßig im W3C-Standard-kompatiblen Modus ausgeführt wird. Weitere Änderungen:

  • Ein Fehler wurde behoben, der dazu führte, dass das Blur-Ereignis beim Löschen von Elementen zweimal ausgelöst wurde.
  • Die Funktion „loggingPrefs“ wurde in „goog:loggingPrefs“ umbenannt, wie vom W3C-Standard gefordert.
  • Fehlerbehandlung im W3C-Modus korrigiert
    • Korrektes Erstellen von Cookies ohne vorangestellten Punkt im Domainnamen
    • Ermöglicht Null für das Skript-Zeitlimit
    • Der Befehl „Element Send Keys“ wurde für die Dateieingabe mit dem Attribut „multiple“ korrigiert.
    • Der Befehl „Get Active Element“ gibt jetzt den Fehler „no such element“ zurück, wenn kein aktives Element vorhanden ist.
    • Die Navigation zu einer fehlerhaften URL wurde korrigiert, sodass der Fehler „invalid argument“ zurückgegeben wird.
    • HTTP-Statuscode bei Empfang einer ungültigen Sitzungs-ID korrigiert
    • Fehlerantwort behoben, wenn der Eingabeparameter fehlt oder fehlerhaft ist
    • Der Befehl „Skript ausführen“ wurde korrigiert, um zeilenorientierte JavaScript-Kommentare zu verarbeiten.

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 74.0.3729.6

Unterstützt Chrome-Version 74

  • Ein Fehler wurde behoben, durch den unter Windows eine unerwartete Datei „debug.log“ generiert wurde.
  • Probleme mit Mausklicks und Drag-and-drop-Vorgängen in SVG-Dokumenten wurden behoben.
  • Cache-Control-Header in Antworten von ChromeDriver hinzugefügt
  • Der Fehlertyp wurde korrigiert, der auftritt, wenn ein Klick von einem anderen Element abgefangen wird.
  • Ein Fehler wurde behoben, der dazu führte, dass ChromeDriver auf Linux-Geräten ohne /dev/shm fehlschlug.
  • Einige Arten von Doppelklickereignissen wurden korrigiert
  • Befehl „Get Sessions“ korrigiert
  • Fehlerprüfung im Befehl „Zu Frame wechseln“ korrigiert
  • Befehl „Get Page Source“ korrigiert

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 73.0.3683.68

Unterstützt Chrome-Version 73

  • Ein Fehler wurde behoben, durch den unter Windows eine unerwartete Datei „debug.log“ generiert wurde.
  • Der Fehlercode, der in einigen Szenarien vom Befehl „Skript ausführen“ zurückgegeben wurde, wurde korrigiert.
  • Cache-Control-Header in Antworten von ChromeDriver hinzugefügt
  • HTTP-Server behält Verbindung standardmäßig aktiv
  • Der Befehl „Fenster schließen“ wurde korrigiert, um Nutzeraufforderungen richtig zu verarbeiten.
  • Der Fehlercode, der beim Senden von Tasten an ein deaktiviertes Element zurückgegeben wurde, wurde korrigiert.
  • Verbesserte Spezifikationskonformität bei der Verarbeitung von Zeitlimitwerten
  • Bessere Spezifikationskonformität des Befehls „Cookie hinzufügen“
    • Längere Warteschlange für HTTP-Server
  • Der Befehl „Is Element Displayed“ (Wird Element angezeigt?) wurde in v0 Shadow DOM korrigiert.
    • Warnung zur Verhaltensänderung des Befehls „Element Clear“ in der Logdatei hinzugefügt
  • Der Befehl „Skript ausführen“ wurde korrigiert, um „document.all“ korrekt in das JSON-Format zu konvertieren.
  • Verbesserte Verarbeitung von ungültigen Elementreferenzen

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 2.46

Unterstützt Chrome 71 bis 73

  • Der Fehlercode, der in einigen Szenarien vom Befehl „Skript ausführen“ zurückgegeben wurde, wurde korrigiert.
  • HTTP-Server behält Verbindung standardmäßig aktiv
  • Der Befehl „Fenster schließen“ wurde korrigiert, um Nutzeraufforderungen richtig zu verarbeiten.
  • Der Fehlercode, der beim Senden von Tasten an ein deaktiviertes Element zurückgegeben wurde, wurde korrigiert.
  • Verbesserte Spezifikationskonformität bei der Verarbeitung von Zeitlimitwerten
  • Bessere Spezifikationskonformität des Befehls „Cookie hinzufügen“
  • Verbesserte Spezifikationskonformität des Befehls „Switch to Frame“
  • Längere Warteschlange für HTTP-Server
  • Der Befehl „Is Element Displayed“ (Wird Element angezeigt?) wurde im v0-Shadow-DOM korrigiert.
  • Befehl „Fixed Element Double Click“
  • Warnung zur Verhaltensänderung des Befehls „Element Clear“ in der Logdatei hinzugefügt
  • Der Befehl „Skript ausführen“ wurde korrigiert, um „document.all“ korrekt in das JSON-Format zu konvertieren.
  • Verbesserte Verarbeitung von ungültigen Elementreferenzen

Weitere Informationen finden Sie in den Versionshinweisen.

ChromeDriver 2.45

Unterstützt Chrome 70 bis 72

  • Behoben: „Neue Sitzung“ entspricht nicht der Spezifikation
  • Fehler behoben: ChromeDriver sollte Chrome nicht starten, wenn die Versionen von Chrome und ChromeDriver inkompatibel sind
  • Der Befehl „Element suchen“ gibt jetzt den richtigen Fehlercode zurück, wenn ein ungültiger Locator verwendet wird.
  • Einige ChromeDriver-Statuscodes sind falsch
  • Kompilierungsfehler in JS in WebViewImpl::DispatchTouchEventsForMouseEvents behoben
  • Befehle für die feste Fenstergröße sollten Nutzerprompts verarbeiten
  • Fehler behoben: ChromeDriver startet Chrome nicht richtig mit der Chrome-Option „user-data-dir=“
  • Der Befehl „Fixed Status“ entspricht nicht der Spezifikation
  • Unterstützung für „strictFileInteractability“ hinzugefügt

ChromeDriver 2.44

Unterstützt Chrome 69 bis 71

  • Problem mit „Fenster maximieren“ auf dem Mac behoben
  • Falscher Fehler „alert open error“ für Fensterhandle-Aufruf behoben
  • Das Problem, dass „Element Send Keys“ im W3C-Modus die Property „text“ nicht abrufen konnte, wurde behoben.
  • Der XML-Sonderfall „Is Element Enabled“ wird nicht gemäß Spezifikation behandelt.
  • Der XML-Sonderfall von „Get Element CSS Value“ wird nicht gemäß Spezifikation behandelt.
  • Behoben: „Set Window Rect“ muss auf ungültige Eingaben prüfen
  • Es wurden neue unhandledPromptBehavior-Modi unterstützt.

ChromeDriver 2.43

Unterstützt Chrome 69 bis 71

Die Änderungen umfassen:

  • Die Analyse der Proxykonfiguration ist nicht standardkonform
  • Behoben: Befehl zum Starten der App ist unzuverlässig
  • Problem behoben: Screenshot eines Elements im iFrame wird falsch aufgenommen
  • ChromeDriver unterstützt jetzt das Ändern der Fenstergröße über eine Remote-Verbindung
  • Fehlercodes werden in „Clear element“ nicht verarbeitet
  • Behoben: Es wird nicht gewartet, bis das Element sichtbar ist
  • „Get element property“ ist nicht implementiert
  • „Switch to Frame“ entspricht nicht der Spezifikation
  • Behoben: „Execute Async Script“ gibt keine spezifikationskonformen Fehlercodes zurück
  • Fehler behoben: „Execute Script“ gibt keine spezifikationskonformen Fehlercodes zurück
  • Der Fehlercode in „ExecuteGet“ entspricht nicht der Spezifikation.
  • Problem behoben: „Send Alert Text“ gibt keine spezifikationskonformen Fehlercodes zurück
  • Fehler behoben: clear() für input type="date" gibt vor, dass das Element nicht vom Nutzer bearbeitet werden kann
  • Chromedriver ruft das Fensterhandle für den manuell geöffneten Tab ab
  • Fehler behoben: Anhängen oder Starten einer neuen Protokolldatei für Chromedriver zulassen
  • Behoben: „New Session“ ruft den W3C-Modus nicht auf, wenn das Flag in „firstMatch“ enthalten ist.

ChromeDriver 2.42

Unterstützt Chrome 68 bis 70

Die Änderungen umfassen:

  • Korrektur des ClickElement in der Mobilemulation
  • Feste IP-Adressen auf der Zulassungsliste mit IPv4
  • Fehler beim Starten von ChromeDriver mit dem Flag „whitelisted-ips“ unter Mac OS behoben
  • Fehler behoben: SetTimeout akzeptiert jetzt sowohl das Format vor W3C als auch das W3C-Format.
  • Screenshot von Take-Elementen korrigiert
  • ChromeDriver sucht jetzt auch in einem System-PATH nach Chrome-Binärdateien
  • „Fenster maximieren“ und „Vollbild“ korrigiert
  • Die Logwiedergabe wurde implementiert. ( funktioniert noch nicht für Android und Remote Browser )
  • Einige Fehlercodes entsprachen nicht dem W3C-Standard.
  • Problem behoben: console.log mit mehreren Argumenten wurde nicht richtig verarbeitet
  • „GetElementRect“ sollte Gleitkommazahlen zulassen
  • Feste Touchemulation

ChromeDriver 2.41

Unterstützt Chrome 67 bis 69

Die Änderungen umfassen:

  • Ein Problem wurde behoben, das auftrat, wenn ChromeDriver mit der Option „whitelisted-ips“ ausgeführt wurde.
  • Der Remote-Debugging-Port wird in den Funktionen zurückgegeben.
  • Abrufen der Fenstergröße unter Android implementiert
  • Verbesserte Fehlermeldungen beim Start von Chrome auf dem Computer
  • ChromeDriver schlägt schnell fehl, wenn Chrome-Binärdateien nicht gestartet werden können
  • Der Rückgabewert von „Close Window“ entspricht der Spezifikation.