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

156
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 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