如何在Puppeteer中单击页面上的每个链接?

时间:2019-06-18 00:49:24

标签: html web-scraping selector puppeteer

尝试按以下方式逐个单击每个页面时出现错误:

我尝试使用puppeteer的.click函数,但它给了我错误: 错误:执行上下文被破坏,很可能是由于导航造成的。

const aTags= await page.$$('#someId > a')
for (const aTag of aTags) {
   await aTag.click();
   //Do stuff
   page.goto(url); //this goes back to the initial page with the list of URLs
}

想要一个个单击链接并返回上一页

1 个答案:

答案 0 :(得分:1)

好吧,如果您通过单击第一个链接转到新页面,则无法单击其余链接... bcuz,您不在链接页面了 只需将所有链接收集到一个数组中...只需使用另一个函数即可打开链接

for (const aTag of aTags) {
    let  href = await page.evaluate(el => el.getAttribute('href'), aTags);
    await open_links(href);
}



async function open_links( url ){
  // open new tab with the url 
}