关于 visual-testing
visual-testing 是用于检查网页界面外观、响应式表现和设计一致性的 skill。它通过 browser-devtools-cli 截图、检查页面内容,并与 Figma 设计稿比较。
主要功能
- 01捕获整页或元素截图
- 02按指定视口测试布局
- 03与 Figma 设计稿比较
- 04检查 HTML 和文本内容
- 05使用语义或原始比较模式
适用场景
- 01检查界面在不同屏幕尺寸下的表现
- 02将实现页面与 Figma 画板比较
- 03排查视觉回归或样式问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ serkan-ozal/ browser-devtools-skills --skill visual-testing安装后在 Claude Code 中输入/visual-testing确认已加载。
详细介绍
视觉测试技能
使用截图、响应式测试和 Figma 集成进行视觉测试、UI 验证和设计对比。
使用时机
在以下情况下启用此技能:
- 用户想要验证 UI 外观
- 用户要求将页面与设计或 Figma 进行对比
- 用户需要进行响应式设计测试
- 用户想要检查视觉回归
- 用户提到 UI 缺陷或样式问题
- 用户询问设计一致性
- 用户想要根据设计验证实现效果
功能
截图捕获
browser-devtools-cli content take-screenshot --name "homepage"
browser-devtools-cli content take-screenshot --name "element" --selector ".hero"
browser-devtools-cli content take-screenshot --name "fullpage" --full-page
browser-devtools-cli content take-screenshot --name "photo" --type jpeg --quality 80
browser-devtools-cli content save-as-pdf --name "page" --format A4
带标注的截图(引用标签)
在交互元素上覆盖编号标签 [1]、[2]。先调用 a11y take-aria-snapshot。
browser-devtools-cli a11y take-aria-snapshot
browser-devtools-cli content take-screenshot --annotate --name "annotated"
browser-devtools-cli content take-screenshot --annotate --annotate-content --name "with-headings"
响应式测试
browser-devtools-cli interaction resize-viewport --width 375 --height 667 # Mobile
browser-devtools-cli interaction resize-viewport --width 768 --height 1024 # Tablet
browser-devtools-cli interaction resize-viewport --width 1920 --height 1080 # Desktop
Figma 设计对比
browser-devtools-cli figma compare-page-with-design \
--figma-file-key "ABC123xyz" \
--figma-node-id "12:34"
browser-devtools-cli figma compare-page-with-design \
--figma-file-key "ABC123xyz" \
--figma-node-id "12:34" \
--selector ".hero-section"
browser-devtools-cli figma compare-page-with-design \
--figma-file-key "ABC123xyz" \
--figma-node-id "12:34" \
--mssim-mode semantic
DOM 检查
browser-devtools-cli content get-as-html
browser-devtools-cli content get-as-html --selector ".component"
browser-devtools-cli content get-as-text --selector ".content"
视口预设
| 设备 | 宽度 | 高度 | 命令 |
|---|---|---|---|
| 小屏手机 | 320px | 568px | --width 320 --height 568 |
| 中屏手机 | 375px | 667px | --width 375 --height 667 |
| 大屏手机 | 425px | 812px | --width 425 --height 812 |
| 平板电脑 | 768px | 1024px | --width 768 --height 1024 |
| 笔记本电脑 | 1366px | 768px | --width 1366 --height 768 |
| 台式电脑 | 1920px | 1080px | --width 1920 --height 1080 |
Figma 对比的前提条件
Figma API 访问权限:
- 设置
FIGMA_ACCESS_TOKEN环境变量 - 从 Figma 账户设置中获取令牌
可选(用于增强对比):
- 用于图像/文本嵌入的 AWS 凭证
- 云端推理配置文件配置
视觉测试工作流
SESSION="--session-id visual-test"
# 1. Navigate
browser-devtools-cli $SESSION navigation go-to --url "https://example.com"
browser-devtools-cli $SESSION sync wait-for-network-idle
# 2. Capture desktop
browser-devtools-cli $SESSION content take-screenshot --name "desktop"
# 3. Test mobile viewport
browser-devtools-cli $SESSION interaction resize-viewport --width 375 --height 667
browser-devtools-cli $SESSION content take-screenshot --name "mobile"
# 4. Test tablet viewport
browser-devtools-cli $SESSION interaction resize-viewport --width 768 --height 1024
browser-devtools-cli $SESSION content take-screenshot --name "tablet"
# 5. Cleanup
browser-devtools-cli session delete visual-test
Figma 对比工作流
1. 获取 Figma 参考
查找 Figma 文件键和节点 ID:
- 文件键:来自 URL
figma.com/file/{FILE_KEY}/... - 节点 ID:选择画板 → 复制链接 → 提取 node-id 参数
2. 与实时页面对比
browser-devtools-cli figma compare-page-with-design \
--figma-file-key "ABC123xyz" \
--figma-node-id "12:34" \
--selector ".hero-section"
3. 分析结果
- 得分 0.9-1.0:匹配度极佳
- 得分 0.7-0.9:细微差异
- 得分 0.5-0.7:明显差异
- 得分 < 0.5:差异很大
4. 调查差异
如果得分较低:
# Take screenshot of the area
browser-devtools-cli content take-screenshot --name "mismatch" --selector ".hero-section"
# Check HTML structure
browser-devtools-cli content get-as-html --selector ".hero-section"
对比模式
语义模式(默认)
- 对文本/数据差异更宽容
- 侧重布局和结构
- 适合对比示例数据与真实数据
browser-devtools-cli figma compare-page-with-design \
--figma-file-key "ABC123" \
--figma-node-id "1:2" \
--mssim-mode semantic
原始模式
- 像素对比更严格
- 预期输出几乎完全一致
- 适合静态内容
browser-devtools-cli figma compare-page-with-design \
--figma-file-key "ABC123" \
--figma-node-id "1:2" \
--mssim-mode raw
常见场景
全页面对比
browser-devtools-cli figma compare-page-with-design \
--figma-file-key "ABC123" \
--figma-node-id "1:2" \
--full-page
组件对比
browser-devtools-cli figma compare-page-with-design \
--figma-file-key "ABC123" \
--figma-node-id "5:10" \
--selector ".card-component"
使用 Figma 进行响应式测试
# Resize viewport first
browser-devtools-cli interaction resize-viewport --width 375 --height 667
# Then compare with mobile design
browser-devtools-cli figma compare-page-with-design \
--figma-file-key "ABC123" \
--figma-node-id "20:30"
常见视觉检查项
- 各断点下元素的可见性
- 文本溢出和截断
- 图像宽高比
- 颜色和排版的一致性
- 间距和对齐
- 交互状态样式
最佳实践
- 使用语义模式对比真实数据与示例数据
- 对比组件,而不只是整个页面
- 测试多个视口,检查响应式设计
- 为 CI/CD 记录 Figma 参考
- 设置基准分数,用于回归测试
- 查看响应中的备注,了解信号详情
- 在关键状态下截取屏幕截图(初始、悬停、激活)
评论
支持 Markdown