Skip to main content
Version: Next

Cookies

Puppeteer offers methods to get, set and delete cookies ahead of time by manipulating browser storage directly. This is useful if you need to store and restore specific cookies for your tests.

Getting cookies

The following example demonstrates how to get cookies available in the browser's default BrowserContext.

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();

const page = await browser.newPage();

await page.goto('https://example.com');

// In this example, we set a cookie using script evaluation.
// Cookies can be set by the page/server in various ways.
await page.evaluate(() => {
document.cookie = 'myCookie = MyCookieValue';
});

console.log(await browser.cookies()); // print available cookies.

Setting cookies

Puppeteer can also write cookies directly into the browser's storage:

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();

// Sets two cookies for the localhost domain.
await browser.setCookie(
{
name: 'cookie1',
value: '1',
domain: 'localhost',
path: '/',
sameParty: false,
expires: -1,
httpOnly: false,
secure: false,
sourceScheme: 'NonSecure',
},
{
name: 'cookie2',
value: '2',
domain: 'localhost',
path: '/',
sameParty: false,
expires: -1,
httpOnly: false,
secure: false,
sourceScheme: 'NonSecure',
},
);

console.log(await browser.cookies()); // print available cookies.

Deleting cookies

Browser.deleteCookie() method allows deleting cookies from storage.

import puppeteer from 'puppeteer';

const browser = await puppeteer.launch();

// Deletes two cookies for the localhost domain.
await browser.deleteCookie(
{
name: 'cookie1',
value: '1',
domain: 'localhost',
path: '/',
sameParty: false,
expires: -1,
httpOnly: false,
secure: false,
sourceScheme: 'NonSecure',
},
{
name: 'cookie2',
value: '2',
domain: 'localhost',
path: '/',
sameParty: false,
expires: -1,
httpOnly: false,
secure: false,
sourceScheme: 'NonSecure',
},
);

console.log(await browser.cookies()); // print available cookies.

In addition to the Browser methods operating on the default browser context, the same methods are available on the BrowserContext class.