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

如何在Cypress测试录制视频中显示鼠标点击等操作的视觉效果?

Cypress测试视频添加鼠标点击视觉效果的实现方案

以下是三类可落地的实现方案,按适配度从高到低排序:

1. 测试代码注入实现(优先推荐,无外部依赖)

这个方案不需要额外安装工具或插件,直接通过Cypress的全局配置注入点击高亮逻辑,录制效果和测试流程完全同步,不会引入额外干扰内容。
你可以在Cypress项目的cypress/support/e2e.js(E2E测试场景)或者cypress/support/component.js(组件测试场景)中添加以下代码:

// 注入点击高亮样式与事件监听
const addClickVisualEffect = () => {
  // 注入高亮样式
  const style = document.createElement('style')
  style.textContent = `
    .click-effect-dot {
      position: fixed;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: rgba(255, 0, 0, 0.7);
      pointer-events: none;
      z-index: 999999;
      animation: click-fade-out 0.6s ease-out forwards;
    }
    @keyframes click-fade-out {
      0% { transform: scale(1); opacity: 1; }
      100% { transform: scale(3); opacity: 0; }
    }
  `
  document.head.appendChild(style)

  // 监听鼠标按下事件生成高亮圆点
  document.addEventListener('mousedown', (e) => {
    const dot = document.createElement('div')
    dot.classList.add('click-effect-dot')
    dot.style.left = `${e.clientX - 10}px`
    dot.style.top = `${e.clientY - 10}px`
    document.body.appendChild(dot)
    // 动画结束后自动清理元素
    setTimeout(() => dot.remove(), 600)
  })
}

// 每个测试页面加载完成后自动注入效果逻辑
beforeEach(() => {
  cy.window().then(win => {
    if (!win.hasClickEffectInjected) {
      win.hasClickEffectInjected = true
      addClickVisualEffect.call(win.document)
    }
  })
})

添加完成后,后续运行测试生成的视频里,所有鼠标点击位置都会显示红色扩散的高亮效果,辨识度很高。

2. 浏览器层面实现

如果不希望修改测试代码,可以通过浏览器用户脚本管理器注入上述逻辑,也可以开启部分浏览器自带的点击反馈功能,或者安装对应浏览器的鼠标点击可视化插件,所有在浏览器内发生的点击都会显示效果,录制时会同步录入视频。

3. 系统独立工具实现

你提到的KmCaster这类工具属于这种方案,不同系统都有对应可选工具:Windows平台可选KmCaster、ClickShow,macOS平台可选Mouseposé,Linux平台可选xclickdot。这类工具全局生效,不需要修改任何测试或浏览器配置,所有系统层面的鼠标点击都会显示视觉效果,录制视频时会同步被录入,适合不想调整现有测试流程的场景使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:36:05