Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

WebDriver BiDi-Module

Das WebDriver BiDi-Protokoll ist in Module organisiert. Jedes Modul stellt eine Sammlung von verwandten Befehlen und Ereignissen dar, die in spezifischen Browser-Automatisierungsfällen verwendet werden.

Sowohl Befehls- als auch Ereignisnamen verwenden den Modulnamen als Präfix: module_name.command_name für Befehle und module_name.event_name für Ereignisse.

Liste der Module

bluetooth-Modul

Das bluetooth-Modul enthält Befehle zur Automatisierung von Interaktionen mit Bluetooth-Geräten.

browser-Modul

Das browser-Modul enthält Befehle zur Verwaltung des Browsers, einschließlich Client-Fenstern, Benutzerkontexten und Download-Verhalten.

browsingContext Modul

Das browsingContext-Modul enthält Befehle und Ereignisse zur Verwaltung von Browsing-Kontexten.

emulation-Modul

Das emulation-Modul enthält Befehle zum Überschreiben des Verhaltens bestimmter Web-APIs, wie der Geolocation API und der Screen Orientation API, um verschiedene Umgebungen zu simulieren.

input-Modul

Das input-Modul enthält Befehle zur Simulation von Benutzerinteraktionen.

log Modul

Das log Modul bietet ein Ereignis zur Überwachung von Browser-Protokolleinträgen, einschließlich der Ausgabe der console API und unbehandelter JavaScript-Fehler.

network Modul

Das network Modul enthält Befehle und Ereignisse im Zusammenhang mit Netzwerk-Anfragen.

permissions module

Das permissions-Modul enthält Befehle zur Verwaltung von Browserberechtigungen.

script-Modul

Das script-Modul enthält Befehle und Ereignisse zum Ausführen von JavaScript und zum Verwalten von Script-Bereichen im Browser.

session-Modul

Das session-Modul enthält Befehle zur Verwaltung des Lebenszyklus und der Ereignisabonnements einer WebDriver-BiDi-Sitzung.

storage-Modul

Das storage-Modul enthält Befehle und Ereignisse im Zusammenhang mit Speicher.

userAgentClientHints Modul

Das userAgentClientHints Modul enthält Befehle zum Überschreiben von User-Agent-Client-Hinweisen.

webExtension Modul

Das webExtension Modul enthält Befehle zur Verwaltung von Browser-Erweiterungen.

Befehle

Ein Befehl ist eine asynchrone Operation, die vom Client an den Browser gesendet wird. Jede von Ihnen gesendete Befehlsnachricht an den Browser hat drei Felder:

  • id: Eine von Ihnen dem Befehl zugewiesene Nummer. Anders als bei HTTP, wo jede Anfrage auf eine Antwort wartet, kann eine WebSocket-Verbindung gleichzeitig mehrere Befehle im Umlauf haben und Antworten können in unterschiedlicher Reihenfolge eintreffen. Die id ermöglicht es Ihnen, jede Antwort dem auslösenden Befehl zuzuordnen.
  • method: Der auszuführende Befehl im Format module_name.command_name.
  • params: Ein Objekt mit zusätzlichen Informationen, die der Befehl benötigt. Einige Befehle erfordern keine Parameter, aber ein leeres params-Objekt ({}) muss dennoch gesendet werden.

Um beispielsweise eine neue Sitzung zu erstellen, würden Sie den Befehl session.new wie folgt senden:

json
{
  "id": 1,
  "method": "session.new",
  "params": {}
}

Jeder Befehl führt entweder zu einer erfolgreichen Antwort mit einem result-Feld oder zu einer Fehlermeldung mit einem error-Feld. Die Struktur von result ist spezifisch für jeden Befehl.

Alle Befehle außer session.new und session.status erfordern eine aktive WebDriver BiDi-Sitzung.

Ereignisse

Ein Ereignis ist eine Benachrichtigung, die vom Browser an den Client gesendet wird, wenn etwas Interessantes passiert. Um Ereignisse zu empfangen, muss der Client zuerst diese mit dem Befehl session.subscribe abonnieren.

Der Client kann ein spezifisches Ereignis oder alle Ereignisse in einem Modul abonnieren. Beispielsweise abonniert "browsingContext.contextCreated" den Client für ein einzelnes Ereignis, während "browsingContext" den Client für jedes Ereignis im Modul browsingContext abonniert.

Jede von Ihnen empfangene Ereignisbenachrichtigung vom Browser hat drei Felder:

  • type: Immer "event".
  • method: Der Ereignisname im Format module_name.event_name.
  • params: Ein Objekt, das die spezifischen Daten des Ereignisses enthält. Die Struktur von params ist spezifisch für jedes Ereignis.

Das folgende ist eine Beispiel-Ereignismeldung, die vom Browser gesendet wird, wenn der Client log.entryAdded abonniert hat und eine Konsolennachricht protokolliert wird (einige Felder wurden der Kürze halber weggelassen):

json
{
  "type": "event",
  "method": "log.entryAdded",
  "params": {
    "type": "console",
    "level": "info",
    "text": "Hello world",
    "timestamp": 1657282076037,
    "method": "log"
  }
}

Browser-Kompatibilität

Siehe auch