class: Coverage

未匹配的标注

Coverage 收集有关页面使用的 JavaScript 和 CSS 部分的信息。

使用 JavaScript 和 CSS 覆盖率获取初始执行代码的百分比的示例:

// 启用 JavaScript 和 CSS 覆盖
await Promise.all([
  page.coverage.startJSCoverage(),
  page.coverage.startCSSCoverage()
]);
// 导航到页面
await page.goto('https://example.com');
// 禁用 JavaScript 和 CSS 覆盖
const [jsCoverage, cssCoverage] = await Promise.all([
  page.coverage.stopJSCoverage(),
  page.coverage.stopCSSCoverage(),
]);
let totalBytes = 0;
let usedBytes = 0;
const coverage = [...jsCoverage, ...cssCoverage];
for (const entry of coverage) {
  totalBytes += entry.text.length;
  for (const range of entry.ranges)
    usedBytes += range.end - range.start - 1;
}
console.log(`Bytes used: ${usedBytes / totalBytes * 100}%`);

Istanbul 消耗的形式输出覆盖率。见 puppeteer-to-istanbul

coverage.startCSSCoverage([options])

  • options <[Object]> 覆盖范围的可配置选项集
    • resetOnNavigation <[boolean]> 是否在每个导航上重置 coverage。默认为true
  • returns: <[Promise]>开始覆盖时解决的 Promise

coverage.startJSCoverage([options])

  • options <[Object]> 覆盖范围的可配置选项集
    • resetOnNavigation <[boolean]> W是否在每个导航上重置 coverage。默认为true
    • reportAnonymousScripts <[boolean]> 是否应报告页面生成的匿名脚本。默认为false
  • returns: <[Promise]> 开始覆盖时解决的Promise

注意 匿名脚本是没有关联 URL 的脚本。这些是使用evalnew Function在页面上动态创建的脚本。如果reportAnonymousScripts设置为true,则匿名脚本的URL将具有__ puppeteer_evaluation_script __

coverage.stopCSSCoverage()

  • returns: <[Promise]<[Array]<[Object]>>> Promise 解析为所有样式表的覆盖率报告数组
    • url <[string]> 样式表 URL
    • text <[string]> 样式表内容
    • ranges <[Array]<[Object]>> 所使用的样式表范围。范围已排序且不重叠。
    • start <[number]> 文本的起始偏移量(含)
    • end <[number]> 文本中的结束偏移量,不包括

注意 CSS Coverage 不包含没有 sourceURLs 的动态注入样式标签。

coverage.stopJSCoverage()

  • returns: <[Promise]<[Array]<[Object]>>> Promise 解析为所有脚本的覆盖率报告数组
    • url <[string]> 脚本网址
    • text <[string]> 脚本内容
    • ranges <[Array]<[Object]>> 已执行的脚本范围。范围已排序且不重叠。
    • start <[number]> 文本的起始偏移量(含)
    • end <[number]> 文本中的结束偏移量,不包括

注意 默认情况下,JavaScript 覆盖率不包括匿名脚本。但是,带有sourceURL的脚本是覆盖率报告。

Istanbul 消耗的形式输出覆盖率。见 puppeteer-to-istanbul

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/puppeteer/3.1.0...

译文地址:https://learnku.com/docs/puppeteer/3.1.0...

上一篇 下一篇
贡献者:3
讨论数量: 0
发起讨论 只看当前版本


暂无话题~