diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/ElementHandleImpl.java b/playwright/src/main/java/com/microsoft/playwright/impl/ElementHandleImpl.java index 1218749b5..35d7374bc 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/ElementHandleImpl.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/ElementHandleImpl.java @@ -490,7 +490,7 @@ void setInputFilesImpl(FilePayload[] files, SetInputFilesOptions options) { options = new SetInputFilesOptions(); } JsonObject params = gson().toJsonTree(options).getAsJsonObject(); - params.add("files", Serialization.toJsonArray(files)); + params.add("payloads", Serialization.toJsonArray(files)); sendMessage("setInputFiles", params); } diff --git a/playwright/src/test/java/com/microsoft/playwright/TestPageSetInputFiles.java b/playwright/src/test/java/com/microsoft/playwright/TestPageSetInputFiles.java index 6e44703b6..f2cfbed23 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestPageSetInputFiles.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestPageSetInputFiles.java @@ -308,7 +308,18 @@ void shouldAcceptSingleFile() { assertEquals("file-to-upload.txt", page.evalOnSelector("input", "input => input.files[0].name")); } -// @Test + @Test + void shouldAcceptSingleFilePayload() { + page.setContent(""); + FileChooser fileChooser = page.waitForFileChooser(() -> page.click("input")); + assertEquals(page, fileChooser.page()); + assertNotNull(fileChooser.element()); + fileChooser.setFiles(new FilePayload("test.txt", "text/plain", "Hello!".getBytes())); + assertEquals(1, page.evalOnSelector("input", "input => input.files.length")); + assertEquals("test.txt", page.evalOnSelector("input", "input => input.files[0].name")); + } + + // @Test void shouldDetectMimeType() throws ExecutionException, InterruptedException { // TODO: Parse form fields on server }