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

View in English Always switch to English

input.setFiles-Befehl

Der input.setFiles Befehl des input-Moduls simuliert einen Dateiauswahldialog, indem die Dateiauswahl eines <input type="file">-Elements in einem gegebenen Kontext auf die angegebenen Dateipfade gesetzt wird.

Syntax

json
{
  "method": "input.setFiles",
  "params": {
    "context": "5f07e3ca-ecac-465e-b9ef-49000c196ecf",
    "element": {
      "sharedId": "3be28343-afd3-4dea-a2b6-a863fbbb80e1"
    },
    "files": ["/home/user/documents/report.pdf"]
  }
}

Parameter

Das params-Feld enthält:

context

Ein String, der die ID des Kontexts mit dem Ziel-<input type="file">-Element enthält. Kontext-IDs werden von Befehlen wie browsingContext.getTree zurückgegeben.

element

Ein Objekt, das die ID enthält, die das <input type="file">-DOM-Element eindeutig identifiziert, das für die Dateiauswahl verwendet werden soll. Die ID wird vom Browser zurückgegeben, wenn Sie das Element mithilfe von browsingContext.locateNodes, script.evaluate oder script.callFunction lokalisieren.

files

Ein Array von Strings, wobei jeder String der absolute Dateipfad einer auszuwählenden Datei ist. Dieser Befehl überschreibt alle zuvor ausgewählten Dateien. Sie können ein leeres Array übergeben, um die Auswahl zu löschen. Wenn das Array mehr als einen Dateipfad enthält, stellen Sie sicher, dass das <input type="file">-Element das multiple-Attribut hat.

Rückgabewert

Das result-Feld in der Antwort ist ein leeres Objekt ({}).

Fehler

invalid argument

Ein erforderlicher Parameter fehlt oder hat einen ungültigen Typ.

no such element

Die Elementreferenz kann nicht auf ein gültiges DOM-Element im angegebenen Kontext aufgelöst werden.

no such frame

Kein Kontext mit der gegebenen Kontext-ID gefunden.

unable to set file input

Das Element ist kein <input>-Element mit type="file", das Element ist deaktiviert oder es werden mehr als ein Dateipfad ohne das multiple-Attribut bereitgestellt.

unsupported operation

Der Browser kann die ausgewählten Dateien nicht auf die bereitgestellten Pfade setzen; zum Beispiel, wenn eine der angegebenen Dateien nicht im Dateisystem existiert.

Beispiele

Eine Datei auf einem Datei-Input setzen

Mit einer WebDriver BiDi-Verbindung und einer aktiven Sitzung erhalten Sie zunächst die sharedId eines <input type="file">-Elements, indem Sie browsingContext.locateNodes oder ein input.fileDialogOpened-Ereignis verwenden, und senden dann die folgende Nachricht, um die ausgewählte Datei festzulegen:

json
{
  "id": 1,
  "method": "input.setFiles",
  "params": {
    "context": "5f07e3ca-ecac-465e-b9ef-49000c196ecf",
    "element": {
      "sharedId": "3be28343-afd3-4dea-a2b6-a863fbbb80e1"
    },
    "files": ["/home/user/documents/test-upload.txt"]
  }
}

Der Browser antwortet wie folgt:

json
{
  "id": 1,
  "type": "success",
  "result": {}
}

Löschen der Dateiauswahl

Um alle zuvor ausgewählten Dateien zu löschen, übergeben Sie ein leeres Array:

json
{
  "id": 2,
  "method": "input.setFiles",
  "params": {
    "context": "5f07e3ca-ecac-465e-b9ef-49000c196ecf",
    "element": {
      "sharedId": "3be28343-afd3-4dea-a2b6-a863fbbb80e1"
    },
    "files": []
  }
}

Der Browser antwortet wie folgt:

json
{
  "id": 2,
  "type": "success",
  "result": {}
}

Spezifikationen

Spezifikation
WebDriver BiDi
# command-input-setFiles

Browser-Kompatibilität

Siehe auch