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 Объект (необязательно)
    • resetOnNavigation boolean (необязательно)

      Нужно ли сбрасывать покрытие при каждом переходе. По умолчанию true.

Возвращаемое значение

  • Promise<void>

startJSCoverage​

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

примечание

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

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

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

Аргументы

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

      Нужно ли отслеживать анонимные скрипты, сгенерированные на странице. По умолчанию false.

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

      Нужно ли сбрасывать покрытие при каждом переходе. По умолчанию true.

Возвращаемое значение

  • Promise<void>

stopCSSCoverage​

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

примечание

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

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

await coverage.stopCSSCoverage();

Возвращаемое значение

  • Promise<Массив<Объект>>
    • url строка

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

    • text строка (необязательно)

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

    • ranges Массив<Объект>

      • start число

        Начальная позиция в тексте (включительно)

      • end число

        Конечная позиция в тексте (исключая)

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

stopJSCoverage​

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

примечание

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

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

await coverage.stopJSCoverage();

Возвращаемое значение

  • Promise<Массив<Объект>>
    • url строка

      URL скрипта

    • scriptId строка

      ID скрипта

    • source строка (необязательно)

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

    • functions Массив<Объект>

      • functionName строка

      • isBlockCoverage boolean

      • ranges Массив<Объект>

        • count число

        • startOffset число

        • endOffset число

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

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

Spec-Zone.ru

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