【发布时间】:2021-05-13 23:11:53
【问题描述】:
我正在寻找 h3 的 innerText,但我想忽略嵌套跨度。
例子:
<h3>
<span>NEW</span>
Blog Article #69
</h3>
这是我当前的代码:
const title = await blogArticle.$eval(
"h3",
(el) => el.textContent
);
返回
NEWBlog Article #69
还尝试了 innerText 没有成功,我无法从 DOM 中删除 span。
【问题讨论】:
-
我不太确定,但你可以试试
const elm = await page.$(".h3"); const text = await page.evaluate(elm => elm.textContent, elm[0]); console.log(text);。 -
这不是严格意义上的 Puppeteer 问题,因为您可以(并且应该)完全在
$eval内的浏览器代码中解决它,如 JavaScript get textContent excluding children 中所述。正确的做法是遍历children,使用child.nodeType === Node.TEXT_NODE查找文本。
标签: javascript dom puppeteer