Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

217
Visualizações
La promesa no se resuelve cuando la condición es verdadera (?)

No puedo entender por qué la promesa no se resuelve cuando la condición es verdadera. En mi caso, estoy trabajando con Puppeteer y estoy tratando de desplazarme hacia abajo para cobrar más reseñas de Google. Selecciono todos los niños del contenedor y el total de reseñas. Es el mismo número, pero parece que esa condición no es cierta. No entiendo nada...

Mi código:

 console.log('he entrado'); await page.evaluate(() => new Promise((resolve) => { const scroller = document.querySelector('.review-dialog-list'); const totalChilds = document.querySelectorAll('.gws-localreviews__general-reviews-block > *').length; const totalReviews = document.querySelector('.z5jxId').innerText.slice(0, -8); if(totalChilds != totalReviews){ var timer = setInterval(() => { scroller.scrollBy(0, 400); }, 100); }else{ clearInterval(timer); resolve(); } })); console.log('he salido');

Puedo ver el archivo console.log con el mensaje 'Él entró' pero nunca me muestra 'Él salió'. No tengo ningún problema con el scroller y compruebo los selectores en la consola del navegador y ambos tienen el mismo valor.

Si alguien puede ayudarme o explicarme por qué falla mi código, se lo agradecería. Espero que puedas entenderme y si no, házmelo saber y agregaré más detalles. ¡Muchas gracias!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Estás recuperando scroller , totalChilds y totalReviews solo cuando page.evaluate se ejecuta por primera vez. Deberías recuperarlos cada vez que te desplaces.

 await page.evaluate(() => new Promise((resolve) => { const scroller = document.querySelector('.review-dialog-list'); const timer = setInterval(() => { const totalChilds = document.querySelectorAll('.gws-localreviews__general-reviews-block > *').length; const totalReviews = document.querySelector('.z5jxId').innerText.slice(0, -8); if (totalChilds === totalReviews) { clearInterval(timer); resolve(); } scroller.scrollBy(0, 400); }, 100); }));
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda