Skip to main content

Coverage

Покрытие собирает информацию о частях JavaScript и CSS, которые использовались на странице.

Пример использования покрытия JavaScript для создания отчета Istanbul при загрузке страницы:

note

API покрытия поддерживаются только в браузерах на основе Chromium.

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();
})();

Методы

startCSSCoverage

Добавлено в: v1.11 coverage.startCSSCoverage

Возвращает, что покрытие начато.

Использование

await coverage.startCSSCoverage();
await coverage.startCSSCoverage(options);

Аргументы

  • options Object (необязательно)
    • resetOnNavigation boolean (необязательно)#

      Указывает, следует ли сбрасывать покрытие при каждой навигации. По умолчанию true.

Возвращает


startJSCoverage

Добавлено в: v1.11 coverage.startJSCoverage

Возвращает, что покрытие начато.

note

Анонимные скрипты — это те, которые не имеют связанного URL. Это скрипты, которые динамически создаются на странице с помощью eval или new Function. Если reportAnonymousScripts установлено в true, анонимные скрипты будут иметь __playwright_evaluation_script__ в качестве своего URL.

Использование

await coverage.startJSCoverage();
await coverage.startJSCoverage(options);

Аргументы

  • options Object (необязательно)
    • reportAnonymousScripts boolean (необязательно)#

      Указывает, следует ли сообщать о анонимных скриптах, сгенерированных страницей. По умолчанию false.

    • resetOnNavigation boolean (необязательно)#

      Указывает, следует ли сбрасывать покрытие при каждой навигации. По умолчанию true.

Возвращает


stopCSSCoverage

Добавлено в: v1.11 coverage.stopCSSCoverage

Возвращает массив отчетов о покрытии для всех таблиц стилей.

note

CSS-покрытие не включает динамически внедренные теги стилей без sourceURLs.

Использование

await coverage.stopCSSCoverage();

Возвращает

  • Promise<Array<Object>>#
    • url string

      URL таблицы стилей

    • text string (необязательно)

      Содержимое таблицы стилей, если доступно.

    • ranges Array<Object>

      • start number

        Начальный смещение в тексте, включая

      • end number

        Конечный смещение в тексте, исключая

      Диапазоны таблицы стилей, которые были использованы. Диапазоны отсортированы и не перекрываются.


stopJSCoverage

Добавлено в: v1.11 coverage.stopJSCoverage

Возвращает массив отчетов о покрытии для всех скриптов.

note

JavaScript-покрытие по умолчанию не включает анонимные скрипты. Однако скрипты с sourceURLs сообщаются.

Использование

await coverage.stopJSCoverage();

Возвращает