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.7K
Vistas
titiritero: espera N segundos antes de continuar con la siguiente línea

En titiritero me gustaría esperar un tiempo definido antes de pasar a la siguiente línea de código.

Intenté poner un setTimeout en una función de evaluación, pero parece que simplemente se ignora

 console.log('before waiting'); await page.evaluate(async() => { setTimeout(function(){ console.log('waiting'); }, 4000) }); console.log('after waiting');

Este código no espera y solo escribe antes de esperar y después de esperar

Sabes como hacer esto?

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

0

Puedes usar una pequeña función de promesa,

 function delay(time) { return new Promise(function(resolve) { setTimeout(resolve, time) }); }

Luego, llámalo cuando quieras un retraso.

 console.log('before waiting'); await delay(4000); console.log('after waiting');

Si debe usar titiritero, use la función incorporada waitForTimeout.

 await page.waitForTimeout(4000)

Si aún desea usar page.evaluate, resuélvalo después de 4 segundos. No estás resolviendo nada.

 await page.evaluate(async() => { await new Promise(function(resolve) { setTimeout(resolve, 1000) }); });

Pero supongo que simplemente puedes usar los dos primeros ejemplos.

over 4 years ago · Santiago Trujillo Denunciar

0

he estado usando:

 await page.waitForTimeout(3000);

Donde 3000 es Milisegundos Y eso parece estar funcionando para mí.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar una de las siguientes opciones para esperar un segundo :

 await page.waitFor(1000); await frame.waitFor(1000); await new Promise(r => setTimeout(r, 1000));

Alternativamente, hay muchas funciones de Puppeteer que incluyen una opción de delay incorporada, que puede ser útil para esperar entre ciertos eventos:

 // Click Delay // Time to wait between mousedown and mouseup in milliseconds. Defaults to 0. await page.click('#example', {delay: 1000}); await frame.click('#example', {delay: 1000}); await elementHandle.click({delay: 1000}); await page.mouse.click(0, 0, {delay: 1000}); // Type Delay // Time to wait between key presses in milliseconds. Defaults to 0. await page.type('#example', 'Hello, world!', {delay: 1000}); await frame.type('#example', 'Hello, world!', {delay: 1000}); await elementHandle.type('Hello, world!', {delay: 1000}); await page.keyboard.type('Hello, world!', {delay: 1000}); // Press Delay // Time to wait between keydown and keyup in milliseconds. Defaults to 0. await elementHandle.press('Backspace', {delay: 1000}); await page.keyboard.press('Backspace', {delay: 1000});
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