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:
note
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 = new v8toIstanbul('', 0, { source: entry.source }); await converter.load(); converter.applyCoverage(entry.functions); console.log(JSON.stringify(converter.toIstanbul())); } await browser.close();})();
- coverage.startCSSCoverage([options])
- coverage.startJSCoverage([options])
- coverage.stopCSSCoverage()
- coverage.stopJSCoverage()
#
coverage.startCSSCoverage([options])Returns coverage is started
#
coverage.startJSCoverage([options])Returns coverage is started
note
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.
#
coverage.stopCSSCoverage()Returns the array of coverage reports for all stylesheets
note
CSS Coverage doesn't include dynamically injected style tags without sourceURLs.
#
coverage.stopJSCoverage()Returns the array of coverage reports for all scripts
note
JavaScript Coverage doesn't include anonymous scripts by default. However, scripts with sourceURLs are reported.