web-dev-qa-db-fra.com

Comment désactiver le cache dans le marionnettiste?

Je veux désactiver le cache dans le marionnettiste, est-ce que quelqu'un peut me dire comment je peux le faire? J'ai trouvé cette page.setCacheEnabled(enabled) mais je ne comprenais pas comment l'utiliser.

Je suis conscient que le navigateur est lancé sans cache ni cookies mais dans mon cas, le navigateur fonctionne toujours en arrière-plan, j'ai donc besoin d'une solution différente.

7
Nagarjun Prasad

Selon les documents du marionnettiste, vous pouvez utiliser await page.setCacheEnabled(enabled)

Cela a été ajouté en décembre. Voir le numéro 1609 de Git Hub

Si vous regardez le commit changes il y a un test par ex.

await page.goto(SOMEURL);

await page.reload({waitUntil: 'networkidle2'});
expect(responses.get('one-style.css').fromCache()).toBe(true);

await page.setCacheEnabled(false);
await page.reload({waitUntil: 'networkidle2'});
expect(responses.get('one-style.css').fromCache()).toBe(false);
8
Rippo

Vous pouvez utiliser cdpSession.send() pour désactiver le cache:

const client = await page.target().createCDPSession();

await client.send('Network.setCacheDisabled', {
  cacheDisabled: true,
});

Alternativement, vous pouvez utiliser le plus lisible page.setCacheEnabled() :

await page.setCacheEnabled(false);
4
Grant Miller

Si vous voulez isoler la session, il y a aussi: const context = await browser.createIncognitoBrowserContext(); const page = await context.newPage(); qui vous donnera un nouveau départ sur chaque page.

3
reflog

Chaque lancement de navigateur commence par un cache HTTP propre et sans aucun cookie.

let browser = await puppeteer.launch(); // no cache, no cookies!

Vous pouvez essayer ceci. Pour mes cas sans cache, j'utilise ceci.

1
syam