A puppeteer plugin to dump and inject session data.
npm install puppeteer-extra-plugin-session> 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)_
``bash`
yarn add puppeteer-extra-plugin-sessionor
npm install puppeteer-extra-plugin-session
First of all, you have to register the plugin with puppeteer-extra.
JavaScript:
`js`
puppeteer.use(require('puppeteer-extra-plugin-session').default());
TypeScript:
`ts`
import SessionPlugin from 'puppeteer-extra-plugin-session';
puppeteer.use(SessionPlugin());
Then, you'll have access to session data helpers:
`ts
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:
`ts
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:
We appreciate all contributions.
See TODO.md
MIT
- Puppeteer documentation
- Puppeteer-Extra plugin documentation
- CDP documentation