【发布时间】:2019-04-16 08:48:47
【问题描述】:
我想点击一个画廊。由于我不知道画廊中有多少张图片,我想我需要一个while循环。当我到达最后一张图片时,下一张图片按钮的类名更改为next-photo is-hidden,直到那时它只是next-photo。
所以我的目标是有一个while循环,当这个按钮被隐藏时,从循环中跳出来,直到那时它应该被重复调用。
我现在站在这里:
async function openGallery(page) {
await page.evaluate(async () => {
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
let randomTime = 250;
let clickOnImage = document.querySelector('div.image');
let nextbutton = document.querySelector('button[class="next-photo"]');
let closeGallery = document.querySelector('button[class="close-gallery"]');
let lastImage = document.querySelector('button[class="next-photo is-hidden"]');
if (clickOnImage) {
clickOnImage.click();
}
while (nextbutton) {
nextbutton.click();
if (lastImage) {
closeGallery.click();
break;
}
await delay(randomTime);
}
});
}
但是现在,当我到达最后一张图片时,程序不会跳出循环,或者换句话说,这之后的其他代码不会执行。画廊不会关闭。
我错过了什么?
【问题讨论】:
标签: javascript node.js loops puppeteer