A puppeteer-extra plugin to export and import session data (cookies, localStorage, sessionStorage, indexedDb)
Dump and restore session data from your puppeteer pages.
This plugin supports:
- cookies
- localStorage
- sessionStorage
- IndexedDB (currently, only the securityOrigin of the current page will get dumped)
yarn add puppeteer-extra-plugin-session
# or
npm install puppeteer-extra-plugin-session
First of all, you have to register the plugin with puppeteer-extra
.
JavaScript:
puppeteer.use(require('puppeteer-extra-plugin-session').default());
TypeScript:
import SessionPlugin from 'puppeteer-extra-plugin-session';
puppeteer.use(SessionPlugin());
Then, you'll have access to session data helpers:
const sessionData = await page.session.dump(); // or page.session.dumpString()
// [...]
await page.session.restore(sessionData); // or page.session.restoreString(sessionData)
You may wish to exclude certain storage backends from being dumped or restored.
This can be done by passing an options object to the dump
and restore
methods:
import { StorageProviderName } from 'puppeteer-extra-plugin-session';
const sessionData = await page.session.dump({
storageProviders: [
StorageProviderName.Cookie,
StorageProviderName.LocalStorage,
], // only dump cookies and LocalStorage
});
// Here is the list of StorageProviderName:
// * StorageProviderName.Cookie
// * StorageProviderName.LocalStorage
// * StorageProviderName.SessionStorage
// * StorageProviderName.IndexedDB
// You can also filter what gets restored:
await page.session.restore(sessionData, {
storageProviders: [StorageProviderName.Cookie], // only restore cookies (the previous dump also contained LocalStorage)
});
Tests are defined in *.spec.ts
files.
You can run the tests watcher using yarn test
or npm run test
You can see the package's logs by setting the DEBUG=puppeteer-extra-plugin:session
env variable.
Example: DEBUG=puppeteer-extra-plugin:session npm test
See the core Puppeteer-Extra Plugin docs for additional information: https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin
We appreciate all contributions.
See TODO.md
MIT