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

155
Views
Titiritero page.mouse.down() / up() ¿no es lo mismo que hacer clic con el mouse físico?

En el siguiente sitio, después de ingresar una frase de búsqueda como "bebé" (¡pruébalo!), la llamada Titiritero page.mouse.down() no tiene el mismo efecto que hacer clic y mantener presionado el mouse físico: https:// www.dextools.io/app/bsc

Después de ingresar una frase de búsqueda, aparece un menú de selección desplegable falso, que en realidad es una UL , y estoy tratando de hacer clic en el primer resultado de búsqueda. Así que uso un código como este

 await page.mouse.move(200, 350); // let's assume this is inside the element I want await page.mouse.down(); await new Promise((resolve) => setTimeout(resolve, 2000)); // wait 2 secs await page.mouse.up();

El efecto esperado de este código es que, durante los 2 segundos que Titiritero "mantiene" presionado el botón del mouse, el menú desplegable falso permanece visible, y cuando Titiritero "suelta" el botón del mouse, el sitio redirige al resultado de la búsqueda del artículo. seleccionado.

Esto es exactamente lo que sucede cuando uso el mouse físico .

Sin embargo, lo que sucede con Puppeteer es que el menú desplegable simplemente desaparece, como si hubiera presionado la tecla Escape , y el page.mouse.up() más tarde ya no tiene ningún efecto.

Soy consciente de que PPT tiene algunas peculiaridades con respecto al mouse, el teclado, mantener y soltar botones y teclas modificadoras, especialmente cuando se hace todo lo anterior a la vez. Por ejemplo, arrastrar y soltar no funciona como se esperaba, pero ninguna de las soluciones propuestas aquí me funciona: https://github.com/puppeteer/puppeteer/issues/1265

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

En lugar de dos operaciones separadas con el mouse hacia abajo y hacia arriba, puede intentar esto de acuerdo con los documentos del titiritero :

 // selector would uniquely identify the button on your page that you would like to click selector = '#dropdown-btn' await page.click(selector, {delay: 2000})
about 4 years ago · Juan Pablo Isaza Report

0

Una vez que tenga el elemento de la lista en el que desea hacer clic, debe buscar la primera etiqueta <a> dentro de este elemento y usar la referencia que hace en este <a> para realizar un clic.

De la documentación del titiritero dice que si hay una navegación que debe usar:

 const [response] = await Promise.all([ page.waitForNavigation(waitOptions), page.click(selector, clickOptions), ]);

donde selector será una referencia a la etiqueta <a> mencionada.

about 4 years ago · Juan Pablo Isaza Report

0

No puedo reproducir el problema con este script de prueba. Se hace clic en el enlace con la siguiente navegación:

 import puppeteer from 'puppeteer'; const browser = await puppeteer.launch({ headless: false, defaultViewport: null }); try { const [page] = await browser.pages(); await page.goto('https://www.dextools.io/app/bsc', { timeout: 0 }); const input = await page.waitForSelector('.input-container input'); await input.type('baby'); const link = await page.waitForSelector('.suggestions-container.is-visible a:not(.text-sponsor)'); await link.click(); } catch (err) { console.error(err); }
about 4 years ago · Juan Pablo Isaza 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!