小编pbn*_*lva的帖子

Puppeteer:无法注入全局变量

我想在向其中注入一些数据后截取页面的屏幕截图:

(async () => {
  const browser = await puppeteer.launch({dumpio: true});
  const page = await browser.newPage();

  await page.evaluate((data) => {
    console.log("-> evaluate");
    window.TestMe = {};
    window.TestMe.data = data;
  }, jsonData)
 
  await page.goto(url); 
 
  await page.screenshot({
    path: 'img.png',
  });
  
  await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)

我测试的简单页面:

<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
<div id="content"></div>
<script>
    let hasData = window.TestMe && window.TestMe.data;
    if (!hasData) {
        console.log("ERROR: No data provided by Puppeteer at window.TestMe.data.");
    } else {
      document.getElementById("content").innerHTML = JSON.stringify(window.TestMe.data);
    }
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

评估似乎不起作用,因为我得到:

<html …
Run Code Online (Sandbox Code Playgroud)

html javascript node.js google-chrome-headless puppeteer

4
推荐指数
1
解决办法
2996
查看次数