Challenge 1
Intercept the collector's beacons in Playwright.
await page.('**/collect', (route) => {
expect(route.request().method()).toBe('POST');
return route.fulfill({ status: 204 });
});
Press Ctrl⌘Enter to check your answer
Fill in the missing Playwright interception patterns and lifecycle-state drivers.
Challenge 1
await page.('**/collect', (route) => {
expect(route.request().method()).toBe('POST');
return route.fulfill({ status: 204 });
});
Press Ctrl⌘Enter to check your answer
Challenge 2
// DevTools > Network: enable
// '' BEFORE navigating away
Press Ctrl⌘Enter to check your answer
Challenge 3
const cdp = await page.context().newCDPSession(page);
await cdp.send('.setWebLifecycleState', { state: 'hidden' });
Press Ctrl⌘Enter to check your answer
Challenge 4
// occupy nearly 64 KiB of in-flight quota
await page.evaluate(async () => {
window.holders = [];
for (let i = 0; i < 8; i++) {
window.holders.push(fetch('/slow', {
method: 'POST',
body: 'x'.repeat(7 * 1024),
: true,
}));
}
});
Press Ctrl⌘Enter to check your answer
Challenge 5
const queued = await page.evaluate(() =>
navigator.sendBeacon('/collect', 'x'.repeat(10 * 1024))
);
expect(queued).toBe(); // quota refusal, no console error
Press Ctrl⌘Enter to check your answer