【发布时间】:2022-06-14 07:31:26
【问题描述】:
我无法理解为什么当条件为真时承诺没有得到解决。就我而言,我正在与 Puppeteer 合作,我正在尝试向下滚动以收取更多谷歌评论。我选择所有容器子项和评论总数。这是相同的数字,但似乎那个条件不是真的。我什么都不懂……
我的代码:
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');
我可以看到带有“He entrado”消息的 console.log,但它从不显示“He salido”。我的滚动条没有任何问题,我在浏览器控制台中检查了选择器,它们的值相同。
如果有人可以帮助我或向我解释我的代码失败的原因,我将不胜感激。希望你能理解我,如果没有,请告诉我,我会追加更多细节。非常感谢!
【问题讨论】:
-
resolve在if中的任何地方都有吗? -
你最后多了一个括号,去掉一个括号
标签: javascript puppeteer