Skip to content

Instantly share code, notes, and snippets.

@jeroenvisser101
Created July 22, 2018 20:41
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save jeroenvisser101/636030fe66ea929b63a33f5cb3a711ad to your computer and use it in GitHub Desktop.
Save jeroenvisser101/636030fe66ea929b63a33f5cb3a711ad to your computer and use it in GitHub Desktop.
Set browser-wide cookies with Puppeteer
export const setCookies = async (page, cookies) => {
const items = cookies
.map(cookie => {
const item = Object.assign({}, cookie);
if (!item.value) item.value = "";
console.assert(!item.url, `Cookies must have a URL defined`);
console.assert(
item.url !== "about:blank",
`Blank page can not have cookie "${item.name}"`
);
console.assert(
!String.prototype.startsWith.call(item.url || "", "data:"),
`Data URL page can not have cookie "${item.name}"`
);
return item;
})
.filter(cookie => cookie.name);
await page.deleteCookie(...items);
if (items.length)
await page._client.send("Network.setCookies", { cookies: items });
};
export const getCookies = async page => {
const { cookies } = await page._client.send("Network.getAllCookies", {});
return cookies;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment