【问题标题】:page.evaluate() with document.querySelectorAll() returns undefined or empty arraypage.evaluate() 和 document.querySelectorAll() 返回未定义或空数组
【发布时间】:2021-06-02 12:10:57
【问题描述】:

我正在尝试使用 Puppeteer 从该站点 https://chat.kuki.ai/ 抓取网络响应。我试过使用page.$evalpage.$$eval。我也试过这个,https://www.javaer101.com/en/article/17934751.html 和, Puppeteer page.evaluate querySelectorAll return empty objects 和, https://github.com/puppeteer/puppeteer/issues/489。 每次,我都会得到一个 undefined 对象或空数组。 我当前的代码是:

const botResponses = await page.evaluate((sel) => {
        let elements = Array.from(document.querySelectorAll(sel));
        let responses = elements.map(element => {
            return element.innerText;
        })
        return responses;
    }, ".pb-chat-bubble pb-chat-bubble__bot");

代码返回一个空列表。代码中的选择器是有效的选择器,您可以在网站上查看以确认。任何帮助表示赞赏!

【问题讨论】:

标签: javascript node.js puppeteer webautomation


【解决方案1】:

您是否尝试过使用page.$$eval

const botResponses = await page.$$eval(".pb-chat-bubble pb-chat-bubble__bot",el=>el.innerText)

它可以用更少的代码完成与上面相同的操作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    相关资源
    最近更新 更多