Je suis en train de:Comment recréer une page avec tous les cookies?
- Visitez une page qui initialise une session
- magasin de la session dans un objet JSON
- Visitez la même page, qui devrait maintenant reconnaître la session existante
La mise en œuvre que j'ai tenté est la suivante:
import puppeteer from 'puppeteer';
const createSession = async (browser, startUrl) => {
const page = await browser.newPage();
await page.goto(startUrl);
await page.waitForSelector('#submit');
const cookies = await page.cookies();
const url = await page.url();
return {
cookies,
url
};
};
const useSession = async (browser, session) => {
const page = await browser.newPage();
for (const cookie of session.cookies) {
await page.setCookie(cookie);
}
await page.goto(session.url);
};
const run = async() => {
const browser = await puppeteer.launch({
headless: false
});
const session = await createSession(browser, 'http://foo.com/');
// The session has been established
await useSession(browser, session);
await useSession(browser, session);
};
run();
createSession
est utilisé pour capturer les cookies de la page chargée.useSession
devraient charger la page en utilisant les cookies existants.
Cependant, cela ne fonctionne pas - la page session.url
ne reconnaît pas la session. Il semble que tous les cookies ne sont pas capturés de cette façon.