When sending a POST request with Playwright, you can pass the data object in a few ways.
If your data is an object, Playwright will serialize it to a JSON string and set the content-type header to application/json. Here's how you can do it:
await request.post('https://ray.run/api/createBook', {
data: {
title: 'Book Title',
author: 'John Doe',
}
});
If you need to send form data, use the form option. The data will be encoded with application/x-www-form-urlencoded encoding.
await request.post('https://ray.run/api/findBook', {
form: {
title: 'Book Title',
author: 'John Doe',
}
});
For file uploads, use the multipart option. Provide an object with file information like name, mime type, and content.
await request.post('https://ray.run/api/uploadFile', {
multipart: {
file1: fs.createReadStream('/path/to/file1.txt'),
file2: fs.createReadStream('/path/to/file2.txt'),
}
});
Remember, the data and form options were added in Playwright version 1.17, and the multipart option in version 1.26. Make sure your Playwright version supports these options.
If you still have questions, please ask a question and I will try to answer it.
Rayrun is a community for QA engineers. I am constantly looking for new ways to add value to people learning Playwright and other browser automation frameworks. If you have feedback, email luc@ray.run.