gpt4 book ai didi

javascript - Puppeteer:无法注入(inject)全局变量

转载 作者:行者123 更新时间:2023-12-01 15:01:08 36 4
gpt4 key购买 nike

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

(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();
})();
我在这个简单的页面上进行了测试:
<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>
评估似乎不起作用,因为我得到:
[0715/103457.665633:INFO:CONSOLE(2)] "-> evaluate", source: __puppeteer_evaluation_script__ (2)
[0715/103457.698770:INFO:CONSOLE(11)] "ERROR: No data provided by Puppeteer at window.TestMe.data.", source: http://localhost:8989/ (11)
我究竟做错了什么?

最佳答案

我能够在 SO 的单独答案中找到解决方案:

Puppeteer: unable to inject global variable

使用:

  await page.evaluateOnNewDocument((data) => {
window.TestMe = {};
window.TestMe.data = data;
}, jsonData);

关于javascript - Puppeteer:无法注入(inject)全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51346709/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com