如何检查元素中是否包含某个字符串?

时间:2019-01-23 04:44:33

标签: node.js puppeteer

我正在尝试确定元素#view_container > div > div > div.pwWryf.bxPAYd > div > div.WEQkZc > div > form > content > section > div > content > div.ck6P8 > div > div是否包含特定字符集(•••)。我对编码非常陌生,因此不胜感激。

2 个答案:

答案 0 :(得分:2)

看看$$eval

page.$$eval('#view_container > div', (elements) =>
  elements.some((el) => el.textContent.includes('some text'))
);

答案 1 :(得分:1)

类似这样的东西:

'use strict';

const puppeteer = require('puppeteer');

(async function main() {
  try {
    const browser = await puppeteer.launch();
    const [page] = await browser.pages();

    await page.goto('https://example.org/');

    const stringIsIncluded = await page.evaluate(() => {
      const string = '...';
      const selector = 'p > a[href]';
      return document.querySelector(selector).innerText.includes(string);
    });

    console.log(stringIsIncluded);

    await browser.close();
  } catch (err) {
    console.error(err);
  }
})();

如果您需要元素的原始文本且未对所有空白进行归一化检查,则可以使用.textContent代替.innerText