input.setFiles-Befehl
Der input.setFiles Befehl des input Moduls simuliert einen Dateiauswahldialog, indem er die Dateiauswahl eines <input type="file">-Elements in einem gegebenen Kontext auf die angegebenen Dateipfade setzt.
Syntax
{
"method": "input.setFiles",
"params": {
"context": "<contextId>",
"element": "<elementId>",
"files": ["<filePath>", ...]
}
}
Parameter
Das params-Feld enthält:
context-
Ein String, der die ID des Kontexts enthält, zu dem das Ziel-Element
<input type="file">gehört. Kontext-IDs werden durch Befehle wiebrowsingContext.getTreezurü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 mitbrowsingContext.locateNodes,script.evaluateoderscript.callFunctionlokalisieren. 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 dasmultiple-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 gegebenen Kontext aufgelöst werden.
no such frame-
Es wird kein Kontext mit der gegebenen Kontext-ID gefunden.
unable to set file input-
Das Element ist kein
<input>-Element mittype="file", das Element ist deaktiviert, oder es wird mehr als ein Dateipfad ohne dasmultiple-Attribut bereitgestellt. unsupported operation-
Der Browser ist nicht in der Lage, die ausgewählten Dateien auf die bereitgestellten Pfade zu setzen; zum Beispiel, wenn eine der angegebenen Dateien nicht auf dem Dateisystem existiert.
Beispiele
>Eine Datei auf einem Datei-Input setzen
Mit einer WebDriver-BiDi-Verbindung und einer aktiven Sitzung, erhalten Sie zuerst die sharedId eines <input type="file">-Elements unter Verwendung von browsingContext.locateNodes oder einem input.fileDialogOpened Ereignis, und senden dann die folgende Nachricht, um die ausgewählte Datei zu setzen:
{
"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 folgendermaßen:
{
"id": 1,
"type": "success",
"result": {}
}
Das Löschen der Dateiauswahl
Um alle zuvor ausgewählten Dateien zu löschen, übergeben Sie ein leeres Array:
{
"id": 2,
"method": "input.setFiles",
"params": {
"context": "5f07e3ca-ecac-465e-b9ef-49000c196ecf",
"element": {
"sharedId": "3be28343-afd3-4dea-a2b6-a863fbbb80e1"
},
"files": []
}
}
Der Browser antwortet folgendermaßen:
{
"id": 2,
"type": "success",
"result": {}
}
Spezifikationen
| Spezifikation |
|---|
| WebDriver BiDi> # command-input-setFiles> |
Browser-Kompatibilität
Siehe auch
input.performActions-Befehlinput.releaseActions-Befehlinput.fileDialogOpened-Ereignisscript.evaluate-Befehl