Spec-Zone.ru › Playwright

Покрытие

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

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

примечание

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​

Возвращает информацию о запуске сбора покрытия

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

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

Аргументы

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

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

Возвращает

  • Promise<void>

startJSCoverage​

Возвращает информацию о запуске сбора покрытия

примечание

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

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

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

Аргументы

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

      Следует ли включать в отчёт анонимные скрипты, созданные страницей. По умолчанию — false.

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

      Не рекомендуется

      При установке значения false данные всё равно могут сбрасываться при навигации.

      Следует ли сбрасывать данные о покрытии при каждой навигации. По умолчанию — true. Обратите внимание: передача значения false не гарантирует сохранение данных о покрытии при навигации из-за ограничений архитектуры браузера.

Возвращает

  • Promise<void>

stopCSSCoverage​

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

примечание

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

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

await coverage.stopCSSCoverage();

Возвращает

  • Promise<Array<Object>>
    • url string

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

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

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

    • ranges Array<Object>

      • start number

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

      • end number

        Конечное смещение в тексте, не включительно

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

stopJSCoverage​

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

примечание

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

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

await coverage.stopJSCoverage();

Возвращает

  • Promise<Array<Object>>
    • url string

      URL скрипта

    • scriptId string

      Идентификатор скрипта

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

      Содержимое скрипта, если применимо.

    • functions Array<Object>

      • functionName string

      • isBlockCoverage boolean

      • ranges Array<Object>

        • count number

        • startOffset number

        • endOffset number

      Формат покрытия, специфичный для V8.

© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/api/class-coverage

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API