Puppeteer set LocalStorage/SessionStorage
Author:zhoulujun Date:
Puppeteer设置cookie 有官方的方法,参考《Puppeteer setCookie设置踩坑》
但是,我们现在很多设置在localstorage与sessionstorage里面,比如react-i18next 中的i18n.changeLanguage
默认情况下,i18next 的 language 信息可以存储在:LocalStorage
如果你希望 i18n.changeLanguage 使用 Cookie 存储语言设置,需要安装了 i18next-browser-languagedetector 插件
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
i18n
.use(LanguageDetector) // 使用语言检测器
.use(initReactI18next) // 绑定到 react-i18next
.init({
resources: {
en: { translation: { /* your translations */ } },
zh: { translation: { /* your translations */ } },
},
fallbackLng: 'en',
detection: {
// 配置语言检测器
order: ['cookie', 'localStorage', 'navigator'], // 优先使用 cookie
caches: ['cookie'], // 缓存到 cookie
cookieOptions: {
path: '/', // 设置 cookie 的路径
sameSite: 'strict', // 安全性配置
secure: true, // 在 HTTPS 上启用安全模式
},
},
interpolation: {
escapeValue: false, // React 自动防止 XSS
},
});
export default i18n;
一般localstorage也够了
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
// 在页面加载前注入 localStorage 数据
await page.evaluateOnNewDocument(() => {
localStorage.setItem('key', 'value');
localStorage.setItem('user', JSON.stringify({ name: 'John', age: 30 }));
});
// 打开目标页面
await page.goto('https://example.com');
// 通过page.evaluate进行localStorage 设置
await page.evaluate(() => {
localStorage.setItem("name", "demoapp");
});
专业就可以了
转载本站文章《Puppeteer set LocalStorage/SessionStorage》,
请注明出处:https://www.zhoulujun.cn/html/webfront/browser/Puppeteer/9456.html