Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.2K
Vistas
Dramaturgo: Cargue archivos de un elemento que no sea de entrada que no se pueda usar page.setInputFiles?

Estoy trabajando para cargar archivos a través de una etiqueta HTML sin entrada en Playwright.

Por ejemplo, puede usar setInputFiles de esta manera, y esto funciona:

 await page.setInputFiles('input[type="file"]', './headphone.png')

Pero aparentemente setInputFiles solo funciona para el elemento de entrada, algo como esto será un error:

 await page.setInputFiles('label.ImageUpload__label ', './headphone.png');

El HTML en el que estoy trabajando es así:

 <div id="ImageUpload" class="ImageUpload u-marginB10"> <label class="ImageUpload__label js-dragdrop-area" for="selectFileMultiple"> <span class="ImageUpload__hide">drag and drop or select files</span> <span class="ImageUpload__text"><span class="js-dragdrop-num">10</span>up to</span> </label> </div>

Entonces, ¿es posible cargar archivos a dichos elementos HTML con Playwright?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

NodeJs: https://playwright.dev/python/docs/api/class-filechooser

 page.on("filechooser", (fileChooser: FileChooser) => { fileChooser.setFiles(["/path/to/a/file"]); })

Python: https://playwright.dev/python/docs/api/class-filechooser/

 with page.expect_file_chooser() as fc_info: page.click("upload") file_chooser = fc_info.value file_chooser.set_files("/path/to/a/file")

Java: https://playwright.dev/java/docs/api/class-filechooser

 FileChooser fileChooser = page.waitForFileChooser(() -> page.click("upload")); fileChooser.setFiles(Paths.get("myfile.pdf"));
over 4 years ago · Santiago Trujillo Denunciar

0

Tuve el mismo problema, así que decidí usar AutoIt para cargar archivos con Playwright.

AutoIt v3 es un lenguaje de secuencias de comandos gratuito similar a BASIC diseñado para automatizar la GUI de Windows y las secuencias de comandos generales.

Usé AutoIT para manejar el cuadro de diálogo Carga de archivos de Windows, que no se puede manejar con Playwright.


Crear guión

  1. Descarga AutoIt: https://www.autoitscript.com/site/autoit/downloads/
  2. Abra SciTE Script Editor y escriba lo siguiente:
 WinWaitActive("Choose files") Send("C:\ChromeDriver\text.txt") Send("{ENTER}")

Si no funciona, cambie Elegir archivos a cualquier título que esté en la parte superior izquierda del cuadro de diálogo de carga.

  1. Haga clic en guardar y asígnele un nombre como upload.au3 y guárdelo en el directorio raíz de su prueba.

Ejemplo de Guardar ubicación

  1. Haga clic derecho en su archivo recién creado y haga clic en Compilar script

Ejecutando el script en tu prueba

Cree la función execFile de los módulos de proceso secundarios en node.js. Referencia: https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback

Agregue esto a la parte superior de su archivo de prueba .spec.ts:

 var exec = require('child_process').execFile; var upload_script = function(){ exec('upload.exe', function(err, data) { console.log(err) }); }

Abra el cuadro de diálogo de carga, luego llame a la función en su prueba

 // Click Browse await page.locator('#browse').click(); // Execute Upload Script upload_script();

Tienes que ejecutar tu prueba dirigida o no funcionará:

prueba de dramaturgo npx --headed

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda