如何禁用 puppeteer 中的缓存?
How can I disable cache in puppeteer?
我想在 puppeteer 中禁用缓存,谁能告诉我该怎么做?我找到了这个 page.setCacheEnabled(enabled)
但我不明白如何使用它。
我知道浏览器是在没有缓存或 cookie 的情况下启动的,但在我的情况下,浏览器总是 运行 在后台,因此需要一个不同的解决方案。
每个浏览器启动都以干净的 HTTP 缓存开始,没有任何 cookie。
let browser = await puppeteer.launch(); // no cache, no cookies!
你可以试试这个。对于没有缓存的情况,我正在使用它。
根据 puppeteer 文档,您可以使用 await page.setCacheEnabled(enabled)
这是在 12 月添加的。 See Git Hub issue #1609
如果您查看 commit changes 有一个测试,例如
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);
您可以使用cdpSession.send()
来禁用缓存:
const client = await page.target().createCDPSession();
await client.send('Network.setCacheDisabled', {
cacheDisabled: true,
});
或者,您可以使用更具可读性的 page.setCacheEnabled()
:
await page.setCacheEnabled(false);
如果要会话隔离,还有:
const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();
这将使您在每一页上都有一个全新的开始。
我想在 puppeteer 中禁用缓存,谁能告诉我该怎么做?我找到了这个 page.setCacheEnabled(enabled)
但我不明白如何使用它。
我知道浏览器是在没有缓存或 cookie 的情况下启动的,但在我的情况下,浏览器总是 运行 在后台,因此需要一个不同的解决方案。
每个浏览器启动都以干净的 HTTP 缓存开始,没有任何 cookie。
let browser = await puppeteer.launch(); // no cache, no cookies!
你可以试试这个。对于没有缓存的情况,我正在使用它。
根据 puppeteer 文档,您可以使用 await page.setCacheEnabled(enabled)
这是在 12 月添加的。 See Git Hub issue #1609
如果您查看 commit changes 有一个测试,例如
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);
您可以使用cdpSession.send()
来禁用缓存:
const client = await page.target().createCDPSession();
await client.send('Network.setCacheDisabled', {
cacheDisabled: true,
});
或者,您可以使用更具可读性的 page.setCacheEnabled()
:
await page.setCacheEnabled(false);
如果要会话隔离,还有:
const context = await browser.createIncognitoBrowserContext();
const page = await context.newPage();
这将使您在每一页上都有一个全新的开始。