Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.2K
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!