具有document.querySelector()返回null的

时间:2019-11-16 15:01:45

标签: javascript html puppeteer

我正在尝试从页面上获取一个按钮。我正在打印所有类,然后尝试获取其中一个类的元素。我的代码如下:

const classes = await page.evaluate( () => {
    var allClasses = [];

    var allElements = document.querySelectorAll('*');

    for (var i = 0; i < allElements.length; i++) {
      var classes = allElements[i].className.toString().split(/\s+/);
      for (var j = 0; j < classes.length; j++) {
        var cls = classes[j];
        if (cls && allClasses.indexOf(cls) === -1)
          allClasses.push(cls);
      }
    }

    return allClasses;
  });

  const chevron = await page.evaluate( () => {
    const c = document.querySelector('coreSpriteRightChevron');
    return c;
  })
  console.log(classes);
  console.log(chevron);

此日志:

[
  'js',
  'not-logged-in',
  'client-root',
  'js-focus-visible',
  'sDN5V',
  '_9eogI',
  'E3X2T',
  'SCxLW',
  'o64aR',
  'Kj7h1',
  'ltEKP',
  'QBXjJ',
  'M9sTE',
  'L_LMM',
  'JyscU',
  'Tgarh',
  'ePUX4',
  'Ppjfr',
  'UE9AK',
  'wdOqh',
  'RR-M-',
  'h5uC0',
  'mrq0Z',
  'CfWVH',
  '_2dbep',
  '_6q-tv',
  'o-MQd',
  'z8cbW',
  'PQo_0',
  'RqtMr',
  'e1e1d',
  'BrX75',
  'FPmhX',
  'notranslate',
  'nJAzx',
  'mewfM',
  'Szr5J',
  'coreSpriteVerifiedBadgeSmall',
  'bY2yH',
  'RPhNB',
  'oW_lN',
  'sqdOP',
  'yWX7d',
  'y3zKF',
  'M30cS',
  'JF9hh',
  '_97aPb',
  'wKWK0',
  'rQDP3',
  'pR7Pc',
  'tR2pe',
  'tN4sQ',
  'zRsZI',
  'NgKI_',
  'MreMs',
  'qqm6D',
  'YlNGR',
  '_-1_m6',
  'bsGjF',
  'ZyFrc',
  'eLAPa',
  'RzuR0',
  'KL4Bh',
  'FFVAD',
  '_9AhH0',
  '_6CZji',
  'coreSpriteRightChevron',
  'JSZAJ',
  '_3eoV-',
  'IjCL9',
  'WXPwG',
  'Yi5aA',
  'XCodT',
  'eo2As',
  'ltpMr',
  'Slqrh',
  'fr66n',
  'dCJp8',
  'afkep',
  'glyphsSpriteHeart__outline__24__grey_9',
  'u-__7',
  '_15y0l',
  'glyphsSpriteComment__outline__24__grey_9',
  '_5e4p',
  'glyphsSpriteShare__outline__24__grey_9',
  'wmtNn',
  'glyphsSpriteSave__outline__24__grey_9',
  'EDfFK',
  'ygqzn',
  'Igw0E',
  'IwRSH',
  'eGOV_',
  'ybXk5',
  'vwCYk',
  'Nm9Fw',
  '_8A5w5',
  'EtaWk',
  'XQXOT',
  'gElp9',
  'rUo9f',
  ... 111 more items
]
null

这是所有类的列表,其中包含我尝试使用document.querySelector()获取的类。该类将显示在列表中,但是尝试从类coreSpriteRightChevron中获取按钮会返回null。

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

也许这行得通吗?

  const chevron = await page.evaluate( () =>
      document.querySelector('.coreSpriteRightChevron')
  )
相关问题