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