gpt4 book ai didi

javascript - 在 puppeteer 中加载页面之前设置本地存储项目?

转载 作者:数据小太阳 更新时间:2023-10-29 04:30:40 27 4
gpt4 key购买 nike

如果您没有设置 JWT_TOKEN,我们有一些路由逻辑可以将您踢到主页...我想在页面加载之前/调用 js 之前设置它。

我该怎么做?

最佳答案

你必须像这样注册 localStorage 项目:

await page.evaluate(() => {
localStorage.setItem('token', 'example-token');
});

您应该在 page.goto 页面之后执行此操作 - 浏览器必须有一个 url 才能在其上注册本地存储项目。在此之后,再次进入同一页面,这次 token 应该在页面加载之前就在这里。

这是一个完整的示例:

const puppeteer = require('puppeteer');
const http = require('http');

const html = `
<html>
<body>
<div id="element"></div>

<script>
document.getElementById('element').innerHTML =
localStorage.getItem('token') ? 'signed' : 'not signed';
</script>
</body>
</html>`;

http
.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(html);
res.end();
})
.listen(8080);

(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();

await page.goto('http://localhost:8080/');

await page.evaluate(() => {
localStorage.setItem('token', 'example-token');
});

await page.goto('http://localhost:8080/');

const text = await page.evaluate(
() => document.querySelector('#element').textContent
);

console.log(text);
await browser.close();

process.exit(0);
})();

关于javascript - 在 puppeteer 中加载页面之前设置本地存储项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51789038/

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