我正在使用 Puppeteer 并尝试使用 document.querySelectorAll
获取元素列表,然后循环并执行某些操作,但是,我的代码似乎有问题,它尽管我的元素位于页面上,但我的 JS:
let elements = await page.evaluate(() => document.querySelectorAll("div[class^='my-class--']"))
for (let el of Array.from(elements)) {
// do something
}
我的 element
和 page.evaluate
有什么问题吗?
最佳答案
据我了解,puppeteer 将所有 HTML 作为一个巨大的字符串返回。这是因为 Node 不在浏览器中运行,因此 HTML 不会被解析。所以 DOM 选择器将不起作用。
解决此问题的方法是使用 Cheerio.js模块,它允许您使用 JQuery 抓取元素,就好像它是解析的 DOM 一样。
关于javascript - Puppeteer querySelectorAll 无法正确获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60903764/