• home > webfront > browser > Puppeteer >

    Puppeteer set LocalStorage/SessionStorage

    Author:zhoulujun Date:

    Puppeteer设置cookie 有官方的方法,参考《Puppeteer setCookie设置踩坑》但是,我们现在很多设置在localstorage与sessionstorage里面,

    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也够了

    但是如何设置localstorage与sessionstorage ,在官网并没有找到方法于案例,google 面向Stack Overflow,实践了
      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