木偶-仅在存在时单击按钮

时间:2020-06-12 02:41:10

标签: javascript while-loop click puppeteer

我正在尝试使用Puppeteer在Node中创建一个webscrapper。 我的第一个挑战(我认为这很容易),它是通过分页的“加载更多”按钮传递的。

但是,当我运行以下代码时,Puppeteer单击所有“加载更多”,然后单击内容后,则需要停止单击。

为什么会这样?

    let loadMore = true;

    while (loadMore) {
        selector = 'ul.pager > li > a.button';

        await page.waitForSelector(selector, { timeout: 600 }).then(() => {
            page.click(selector);
        }).catch(() => {
            loadMore = false;
        });
    }

全力以赴!

1 个答案:

答案 0 :(得分:1)

我会这样做。 我认为这里的超时没有什么区别,如果if条件中的await不够,那么脚本可能还有其他问题。

let loadMore = true;
while (loadMore) {
  const selector = 'ul.pager > li > a.button';

  if ((await page.$(selector)) !== null) {
    await page.click(selector);
  } else {
    loadMore = false;
  }
}