You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动化查找未使用的JavaScript与CSS?能否集成到Selenium测试?

Chrome DevTools Coverage功能集成Selenium的实现方案

完全可以实现,核心是借助Chrome DevTools Protocol(CDP)提供的覆盖率相关接口,Selenium 4及以上版本已经原生支持CDP调用,不需要额外安装浏览器扩展。

前置要求

  • 使用 Selenium 4及以上版本 ,配合对应版本的Chrome/Chromium浏览器
  • 若仍在使用Selenium 3,需要额外引入CDP调用库适配,更推荐直接升级Selenium版本减少适配成本

具体实现步骤

  • 初始化Chrome驱动后,先调用CDP命令开启JS和CSS覆盖率追踪
# 开启JS精确覆盖率追踪
driver.execute_cdp_cmd("Profiler.startPreciseCoverage", {"callCount": False, "detailed": True})
# 开启CSS规则使用追踪
driver.execute_cdp_cmd("CSS.startRuleUsageTracking", {})
  • 执行正常的Selenium测试流程,包括页面访问、交互操作、滚动、路由跳转等所有你需要统计覆盖率的行为
  • 所有测试操作完成后,拉取覆盖率原始数据
# 获取JS覆盖率结果
js_coverage_data = driver.execute_cdp_cmd("Profiler.takePreciseCoverage", {})
# 停止CSS追踪并获取CSS覆盖率结果
css_coverage_data = driver.execute_cdp_cmd("CSS.stopRuleUsageTracking", {})
  • 数据解析处理
    拿到的原始数据包含每个资源的使用范围偏移量,你可以自行统计未使用代码的占比,也可以将数据转换为Chrome DevTools Coverage面板兼容的JSON格式,直接导入浏览器可视化查看未使用的JS/CSS片段。

优化建议

  • 统计单页应用多路由覆盖率时,不需要每次路由跳转都重启追踪,完成所有路由操作后再统一拉取结果即可
  • 可以将覆盖率统计逻辑封装到测试用例的前后钩子中,无需侵入业务测试代码即可自动完成全量用例的覆盖率采集
  • 若页面存在跨域静态资源,可给Chrome添加启动参数--disable-web-security避免CDP读取跨域资源覆盖率时出现权限问题

内容的提问来源于stack exchange,提问作者Halmurat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 07:06:02