admin管理员组

文章数量:1026989

I’m working on a Puppeteer script where I need the browser to retain cookies across sessions. However, I've noticed that after closing the browser and reopening it, the cookies are lost.

Here’s a reproducible example of my code:

import puppeteer from 'puppeteer';

(async () => {
    const userDataDir = 'C:\\junk_dir\\zxc'; 

    const args = [
        ...puppeteer.defaultArgs({ headless: false }).map(arg => {
            if (arg.startsWith('--disable-features')) {
                return arg.replace('Translate,', '').replace(',Translate', '');
            }
            return arg;
        }),
        '--start-maximized',
        '--disable-sync',
        '--no-sandbox',
        '--ignore-certificate-errors'
    ].filter(arg => !['--enable-automation', '--disable-extensions'].includes(arg));

    const browser = await puppeteer.launch({
        args,
        acceptInsecureCerts: true,
        headless: false,
        ignoreHTTPSErrors: true,
        defaultViewport: null,
        ignoreDefaultArgs: true,                                                                           
        userDataDir: userDataDir,
        pipe: true
    });

    // Open a new page
    const page = await browser.newPage();

   // 

})();

Could you please advise?

I’m working on a Puppeteer script where I need the browser to retain cookies across sessions. However, I've noticed that after closing the browser and reopening it, the cookies are lost.

Here’s a reproducible example of my code:

import puppeteer from 'puppeteer';

(async () => {
    const userDataDir = 'C:\\junk_dir\\zxc'; 

    const args = [
        ...puppeteer.defaultArgs({ headless: false }).map(arg => {
            if (arg.startsWith('--disable-features')) {
                return arg.replace('Translate,', '').replace(',Translate', '');
            }
            return arg;
        }),
        '--start-maximized',
        '--disable-sync',
        '--no-sandbox',
        '--ignore-certificate-errors'
    ].filter(arg => !['--enable-automation', '--disable-extensions'].includes(arg));

    const browser = await puppeteer.launch({
        args,
        acceptInsecureCerts: true,
        headless: false,
        ignoreHTTPSErrors: true,
        defaultViewport: null,
        ignoreDefaultArgs: true,                                                                           
        userDataDir: userDataDir,
        pipe: true
    });

    // Open a new page
    const page = await browser.newPage();

   // 

})();

Could you please advise?

Share Improve this question edited Dec 24, 2024 at 11:30 Yaniv Levi asked Dec 24, 2024 at 10:45 Yaniv LeviYaniv Levi 92 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

If you use the userDataDir option it will save some cookies but not session cookies. You can save those with page.cookies() and set them later with page.setCookie()

I’m working on a Puppeteer script where I need the browser to retain cookies across sessions. However, I've noticed that after closing the browser and reopening it, the cookies are lost.

Here’s a reproducible example of my code:

import puppeteer from 'puppeteer';

(async () => {
    const userDataDir = 'C:\\junk_dir\\zxc'; 

    const args = [
        ...puppeteer.defaultArgs({ headless: false }).map(arg => {
            if (arg.startsWith('--disable-features')) {
                return arg.replace('Translate,', '').replace(',Translate', '');
            }
            return arg;
        }),
        '--start-maximized',
        '--disable-sync',
        '--no-sandbox',
        '--ignore-certificate-errors'
    ].filter(arg => !['--enable-automation', '--disable-extensions'].includes(arg));

    const browser = await puppeteer.launch({
        args,
        acceptInsecureCerts: true,
        headless: false,
        ignoreHTTPSErrors: true,
        defaultViewport: null,
        ignoreDefaultArgs: true,                                                                           
        userDataDir: userDataDir,
        pipe: true
    });

    // Open a new page
    const page = await browser.newPage();

   // 

})();

Could you please advise?

I’m working on a Puppeteer script where I need the browser to retain cookies across sessions. However, I've noticed that after closing the browser and reopening it, the cookies are lost.

Here’s a reproducible example of my code:

import puppeteer from 'puppeteer';

(async () => {
    const userDataDir = 'C:\\junk_dir\\zxc'; 

    const args = [
        ...puppeteer.defaultArgs({ headless: false }).map(arg => {
            if (arg.startsWith('--disable-features')) {
                return arg.replace('Translate,', '').replace(',Translate', '');
            }
            return arg;
        }),
        '--start-maximized',
        '--disable-sync',
        '--no-sandbox',
        '--ignore-certificate-errors'
    ].filter(arg => !['--enable-automation', '--disable-extensions'].includes(arg));

    const browser = await puppeteer.launch({
        args,
        acceptInsecureCerts: true,
        headless: false,
        ignoreHTTPSErrors: true,
        defaultViewport: null,
        ignoreDefaultArgs: true,                                                                           
        userDataDir: userDataDir,
        pipe: true
    });

    // Open a new page
    const page = await browser.newPage();

   // 

})();

Could you please advise?

Share Improve this question edited Dec 24, 2024 at 11:30 Yaniv Levi asked Dec 24, 2024 at 10:45 Yaniv LeviYaniv Levi 92 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

If you use the userDataDir option it will save some cookies but not session cookies. You can save those with page.cookies() and set them later with page.setCookie()

本文标签: Puppeteerwhy are Chrome cookies lost after closing the browser and reopeningStack Overflow