Coverage
Coverage gathers information about parts of JavaScript and CSS that were used by the page.
An example of using JavaScript coverage to produce Istanbul report for page load:
Coverage APIs are only supported on Chromium-based browsers.
const { chromium } = require('playwright');
const v8toIstanbul = require('v8-to-istanbul');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.coverage.startJSCoverage();
await page.goto('https://chromium.org');
const coverage = await page.coverage.stopJSCoverage();
for (const entry of coverage) {
const converter = v8toIstanbul('', 0, { source: entry.source });
await converter.load();
converter.applyCoverage(entry.functions);
console.log(JSON.stringify(converter.toIstanbul()));
}
await browser.close();
})();
Methods
startCSSCoverage
Added in: v1.11Returns coverage is started
Usage
await coverage.startCSSCoverage();
await coverage.startCSSCoverage(options);
Arguments
options
Object (optional)
Returns
startJSCoverage
Added in: v1.11Returns coverage is started
Anonymous scripts are ones that don't have an associated url. These are scripts that are dynamically created on the page using eval
or new Function
. If reportAnonymousScripts
is set to true
, anonymous scripts will have __playwright_evaluation_script__
as their URL.
Usage
await coverage.startJSCoverage();
await coverage.startJSCoverage(options);
Arguments
options
Object (optional)
Returns
stopCSSCoverage
Added in: v1.11Returns the array of coverage reports for all stylesheets
CSS Coverage doesn't include dynamically injected style tags without sourceURLs.
Usage
await coverage.stopCSSCoverage();
Returns
stopJSCoverage
Added in: v1.11Returns the array of coverage reports for all scripts
JavaScript Coverage doesn't include anonymous scripts by default. However, scripts with sourceURLs are reported.
Usage
await coverage.stopJSCoverage();
Returns