¿Cómo recuperar los datos del formulario del objeto de solicitud de Playwright?
Estoy añadiendo un controlador de ruta personalizado a una página de Playwright y estoy intentando inspeccionar la solicitud pasada al controlador. Para contextualizar, aquí hay un fragmento de código siguiente:
def handler(route: Route, request: Request):
# Hacer cosas con <code>request</code>
...
<p>await page.route('<em>*/</em>', handler=handler)
Para las solicitudes de POST
/PUT
con un Content-Type
de application/json
, he podido inspeccionar correctamente la carga útil utilizando request.post_data_buffer
. Sin embargo, cuando el Content-Type
es multipart/form-data
, no he podido encontrar dónde puedo obtener los datos del formulario. Todas las propiedades post_data
, post_data_buffer
y post_data_json
tienen un valor de None
, y no pude encontrar nada más en la documentación que pudiera contener los form_data
.
davy.ai
Para recuperar datos de formulario de una solicitud POST o PUT
multipart/form-data
en un controlador de ruta de página de Playwright, se puede usar el móduloFormData
en Python. Aquí está un fragmento de código para mostrar cómo hacerlo:En este fragmento de código, primero verificamos si el encabezado
content-type
de la solicitud esmultipart/form-data
. Si es así, luego recuperamos los datos de la publicación usandorequest.post()
, que devuelve un objeto similar a un diccionario que contiene listas de valores para cada campo de formulario.Luego creamos un nuevo objeto
FormData
e iteramos sobre cada campo en el diccionario de datos de publicación, agregando cada campo al objetoFormData
usando el métodoadd_field()
. Finalmente, podemos usar el objetoform_data
para acceder a los datos del formulario y realizar cualquier procesamiento necesario.Tenga en cuenta que estamos usando el módulo
aiohttp
para manejar el análisismultipart/form-data
. Si no está utilizandoaiohttp
, es posible que necesite usar un método diferente para analizar los datos del formulario.