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

View in English Always switch to English

log.entryAdded-Ereignis

Das Ereignis log.entryAdded des Moduls log wird ausgelöst, wenn im Browser ein neuer Protokolleintrag entsteht – entweder durch einen Aufruf der Console-API oder durch einen unbehandelten JavaScript-Fehler.

Ereignisdaten

Das Feld params in der Ereignisbenachrichtigung enthält ein Protokolleintragsobjekt. Je nach Quelle hat dieses Objekt einen anderen Typ: "console" oder "javascript". Jeder Typ kann zusätzliche, quellenspezifische Felder enthalten.

Gemeinsame Felder

Alle Protokolleintragsobjekte enthalten die folgenden Felder:

level

Ein String, der den Schweregrad des Protokolleintrags angibt. Er hat einen der folgenden Werte:

source

Ein Objekt, das den Realm identifiziert, in dem der Protokolleintrag erstellt wurde. Es enthält die folgenden Felder:

realm

Ein String mit der ID des Realm.

context Optional

Ein String mit der ID des Kontexts, in dem der Protokolleintrag erstellt wurde.

userContext Optional

Ein String mit der ID des Benutzerkontexts, in dem das skriptbezogene Ereignis aufgetreten ist.

stackTrace Optional

Ein Objekt, das den JavaScript-Aufrufstapel zum Zeitpunkt der Erstellung des Protokolleintrags darstellt. Es enthält das folgende Feld:

callFrames

Ein Array mit null oder mehr Stack-Frame-Objekten. Jedes Objekt enthält die folgenden Felder:

columnNumber

Eine nicht negative Ganzzahl mit der nullbasierten Spaltennummer des ausgeführten Codes.

functionName

Ein String mit dem Namen der ausgeführten Funktion.

lineNumber

Eine nicht negative Ganzzahl mit der nullbasierten Zeilennummer des ausgeführten Codes.

url

Ein String mit der URL des Skripts.

text

Ein String mit der Protokollmeldung oder null, falls keine verfügbar ist. Bei Console-Einträgen besteht er aus allen in Strings umgewandelten Argumenten, die durch Leerzeichen verbunden sind; bei JavaScript-Fehlern enthält er in der Regel die Fehlermeldung. Das genaue Format hängt vom Browser ab. Verlassen Sie sich daher bei Prüfungen in Tests nicht auf diesen Wert.

timestamp

Eine nicht negative Ganzzahl, die den Zeitpunkt der Erstellung des Protokolleintrags als Anzahl der seit der Unix-Epoche vergangenen Millisekunden angibt (Date.now()).

type

Ein String, der die Quelle des Protokolleintrags identifiziert. Er hat einen der folgenden Werte:

  • "console": Gibt an, dass der Protokolleintrag durch den Aufruf einer Console-API-Methode erzeugt wurde (zum Beispiel console.log() oder console.warn()). Protokolleintragsobjekte dieses Typs enthalten zusätzliche Felder.
  • "javascript": Gibt an, dass der Protokolleintrag durch einen unbehandelten JavaScript-Fehler erzeugt wurde.

Felder von "console"-Protokolleinträgen

Zusätzlich zu den gemeinsamen Feldern enthalten Protokolleintragsobjekte mit "type": "console" auch:

args

Ein Array von Objekten, die die an die Console-Methode übergebenen Argumente darstellen. Jedes Objekt hat ein type-Feld (beispielsweise "string", "number", "boolean" oder "array") sowie optionale Felder value, handle und internalId.

method

Ein String mit dem Namen der aufgerufenen Console-Methode (beispielsweise "log", "error", "assert", "debug", "trace" oder "warn").

Beispiele

Ein Ereignis für eine Console-Protokollmeldung empfangen

Wenn eine WebDriver-BiDi-Verbindung und ein Abonnement für log.entryAdded aktiv sind, sendet der Browser ein log.entryAdded-Ereignis, sobald ein Skript console.log("hello", [1, true, "foo"]) ausführt:

json
{
  "type": "event",
  "method": "log.entryAdded",
  "params": {
    "type": "console",
    "method": "log",
    "source": {
      "realm": "7c37f4c0-abcd-1234-ef56-789012345678",
      "context": "6B3D5B3A-6571-432B-8E96-E53B5C2ECBB5"
    },
    "args": [
      {
        "type": "string",
        "value": "hello"
      },
      {
        "type": "array",
        "value": [
          { "type": "number", "value": 1 },
          { "type": "boolean", "value": true },
          { "type": "string", "value": "foo" }
        ]
      }
    ],
    "level": "info",
    "text": "hello 1,true,foo",
    "timestamp": 1712345678901,
    "stackTrace": {
      "callFrames": [
        {
          "columnNumber": 8,
          "functionName": "",
          "lineNumber": 1,
          "url": "https://example.com/app.js"
        }
      ]
    }
  }
}

Ein Ereignis für eine Console-Warnung empfangen

Wenn eine WebDriver-BiDi-Verbindung und ein Abonnement für log.entryAdded aktiv sind, sendet der Browser ein log.entryAdded-Ereignis, sobald ein Skript console.warn("something went wrong") ausführt:

json
{
  "type": "event",
  "method": "log.entryAdded",
  "params": {
    "type": "console",
    "method": "warn",
    "source": {
      "realm": "7c37f4c0-abcd-1234-ef56-789012345678",
      "context": "6B3D5B3A-6571-432B-8E96-E53B5C2ECBB5"
    },
    "args": [
      {
        "type": "string",
        "value": "something went wrong"
      }
    ],
    "level": "warn",
    "text": "something went wrong",
    "timestamp": 1712345678950,
    "stackTrace": {
      "callFrames": [
        {
          "columnNumber": 8,
          "functionName": "",
          "lineNumber": 1,
          "url": "https://example.com/app.js"
        }
      ]
    }
  }
}

Ein Ereignis für einen unbehandelten JavaScript-Fehler empfangen

Wenn eine WebDriver-BiDi-Verbindung und ein Abonnement für log.entryAdded aktiv sind, sendet der Browser ein log.entryAdded-Ereignis, sobald ein unbehandelter JavaScript-Fehler auftritt:

json
{
  "type": "event",
  "method": "log.entryAdded",
  "params": {
    "type": "javascript",
    "level": "error",
    "source": {
      "realm": "7c37f4c0-abcd-1234-ef56-789012345678",
      "context": "6B3D5B3A-6571-432B-8E96-E53B5C2ECBB5"
    },
    "text": "ReferenceError: undefinedVariable is not defined",
    "timestamp": 1712345679100,
    "stackTrace": {
      "callFrames": [
        {
          "columnNumber": 27,
          "functionName": "",
          "lineNumber": 3,
          "url": "https://example.com/app.js"
        },
        {
          "columnNumber": 18,
          "functionName": "",
          "lineNumber": 3,
          "url": "https://example.com/app.js"
        }
      ]
    }
  }
}

Spezifikationen

Spezifikation
WebDriver BiDi
# event-log-entryAdded

Browser-Kompatibilität

Siehe auch