Skip to main content
Version: 20.7.4

Coverage class

The Coverage class provides methods to gather information about parts of JavaScript and CSS that were used by the page.

Signature:

export declare class Coverage

Remarks

To output coverage in a form consumable by Istanbul, see puppeteer-to-istanbul.

Example

An example of using JavaScript and CSS coverage to get percentage of initially executed code:

// Enable both JavaScript and CSS coverage
await Promise.all([
page.coverage.startJSCoverage(),
page.coverage.startCSSCoverage(),
]);
// Navigate to page
await page.goto('https://example.com');
// Disable both JavaScript and CSS coverage
const [jsCoverage, cssCoverage] = await Promise.all([
page.coverage.stopJSCoverage(),
page.coverage.stopCSSCoverage(),
]);
let totalBytes = 0;
let usedBytes = 0;
const coverage = [...jsCoverage, ...cssCoverage];
for (const entry of coverage) {
totalBytes += entry.text.length;
for (const range of entry.ranges) usedBytes += range.end - range.start - 1;
}
console.log(`Bytes used: ${(usedBytes / totalBytes) * 100}%`);

Constructors

ConstructorModifiersDescription
(constructor)(client)Constructs a new instance of the Coverage class

Methods

MethodModifiersDescription
startCSSCoverage(options)
startJSCoverage(options)
stopCSSCoverage()Promise that resolves to the array of coverage reports for all stylesheets.
stopJSCoverage()Promise that resolves to the array of coverage reports for all scripts.