【问题标题】:Click on link does not fire or doesn't trigger navigation单击链接不会触发或不会触发导航
【发布时间】:2020-08-01 02:24:30
【问题描述】:

我正在使用 puppeteer 访问网站并单击链接。不幸的是,我无法点击链接来工作。这是一个最小的非工作示例:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({headless:false,});
  const page = await browser.newPage();
  page.setViewport({ width: 1600, height: 900 });

  await page.goto('https://dl.acm.org/doi/proceedings/10.1145/3337932');

  let arrMainLinks = await page.$$('.issue-item__title');
  for(let i = 0; i < arrMainLinks.length; ++i)
  {
    await page.waitForSelector('.issue-item__title a', {waitUntil: 'networkidle2'});

    const x = arrMainLinks[i];
    await x.hover();
    await x.click();
    await page.waitForNavigation({waitUntil: 'networkidle0'});

    // do things

    await page.goBack();
    await page.waitForSelector('body', {waitUntil: 'networkidle2'});

    arrMainLinks = await page.$$('.issue-item__title a')
  }
})();

我尝试过的事情:

  • Promise.all 快速谷歌搜索提示的技巧
  • page.eval(x =&gt; x.click(), x)
  • 点击前waitFor(20000)

我怎样才能让它工作,只需点击链接?

【问题讨论】:

    标签: javascript puppeteer


    【解决方案1】:

    您需要更改选择器:

      let arrMainLinks = await page.$$('.issue-item__title a');
    

    问题中的方式在h2元素上发出点击,将其更改为a元素有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多