木偶未执行forEach

时间:2019-03-04 18:14:33

标签: javascript puppeteer

我有这个代码

  ...
  const page = await browser.newPage();
  page.on('console', msg => {
    if (msg._type === 'log') {
      console.log(msg._text);
    }
  });
  ...

  await page.evaluate(() => {
    document.querySelectorAll('.foo').forEach(bar => {
      console.log('This logs not');
      if (bar.querySelector('div > p').innerHTML === 'foo bar') {
        bar.querySelector('.dropdown').click();
      }
    });
  });

但是它没有记录任何内容。当我这样做

  await page.evaluate(() => {
    const test = document.querySelectorAll('.foo')
    console.log('This logs');
    test.forEach(bar => {
      console.log('This logs not');
      if (bar.querySelector('div > p').innerHTML === 'foo bar') {
        bar.querySelector('.dropdown').click();
      }
    });
  });

它记录第一个console.log()。 为什么它不执行forEach

1 个答案:

答案 0 :(得分:0)

document.querySelectorAll('.foo')为空,因为该选择器不包含任何元素。这就是为什么在记录日志时没有得到任何结果的原因。

enter image description here