【问题标题】:Node.js Puppeteer - Can't set HTML element inside page.evaluateNode.js Puppeteer - 无法在 page.evaluate 中设置 HTML 元素
【发布时间】:2020-03-19 18:53:24
【问题描述】:

所以我正在使用 node.js puppeteer 并且在使用 page.evaluate 方法时遇到了问题。这是我的代码的相关部分:

    console.log(response); 
    //Valid, prints a regular old string
    await page.evaluate(() => document.getElementById('myelement').innerHTML = response); 
    //Doesn't work, I'm given the error 'response is not defined'

这里有什么问题?

【问题讨论】:

  • 您必须在 lambda 中添加响应变量作为参数,并在评估函数中添加作为参数
  • @JoelHarkes 就像这样:await page.evaluate((response) => document.getElementById('myelement').innerHTML = response);
  • 然后将其添加为评估函数的第二个参数。查看我的回复。
  • 注意:响应变量必须是可序列化的。

标签: javascript node.js puppeteer


【解决方案1】:

响应变量不会发送到 chrome 浏览器,您必须将其添加为评估函数的参数。

console.log(response); 

await page.evaluate((response) => document.getElementById('myelement').innerHTML = response, response);

【讨论】:

    猜你喜欢
    • 2019-04-01
    • 2021-02-05
    • 1970-01-01
    • 2019-09-03
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    相关资源
    最近更新 更多