返回顶部
w

web-screenshot网页截图

Capture screenshots of web pages running on local or remote servers using Puppeteer in headless Chromium. Use when user asks to screenshot web pages, capture web UI, take website screenshots, or document web application interfaces. Supports login-required SPAs (Vue/React/Angular) by performing form-based authentication before navigating. Generates screenshots and an optional result.json with per-page descriptions.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
150
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

web-screenshot

Web 截图

捕获网页(尤其是SPA应用)的截图,并支持自动登录处理。

依赖

  • - puppeteer-core(npm 全局安装)
  • chromium-browser(/usr/bin/chromium-browser)
  • Node.js

验证方式:which chromium-browser && npm ls -g puppeteer-core

快速开始

bash
node /scripts/screenshot.js

配置格式

json
{
baseUrl: http://192.168.7.66:8080,
outputDir: /root/screenpics/my-capture,
resolution: [1920, 1080],
login: {
url: /login,
usernameSelector: input[placeholder=请输入用户名],
passwordSelector: input[type=password],
submitSelector: button.el-button--primary,
credentials: { username: admin, password: 123456 }
},
pages: [
{ name: 01_dashboard, path: /dashboard, waitMs: 3000 },
{ name: 02projectlist, path: /project/list, waitMs: 2000 }
],
descriptions: {
01_dashboard: 工作台首页,展示KPI卡片和图表。,
02projectlist: 项目管理列表页面。
}
}

登录流程(SPA认证)

脚本通过以下方式处理Vue/React SPA登录:

  1. 1. 导航到登录页面
  2. 通过原生HTMLInputElement.value设置器设置输入值,并派发input事件(兼容Vue响应式)
  3. 点击提交按钮
  4. 等待SPA路由导航(URL变化)
  5. 使用Vue的$router.push()进行后续页面导航(避免完整页面重载导致Pinia/Redux状态重置)

字段说明

字段必填描述
baseUrlWeb应用的基础URL
outputDir
✅ | 截图输出目录 | | resolution | 否 | 视口大小[宽度, 高度],默认为[1920, 1080] | | login | 否 | 登录配置(公开页面可跳过) | | login.usernameSelector | ✅* | 用户名输入框的CSS选择器 | | login.passwordSelector | ✅* | 密码输入框的CSS选择器 | | login.submitSelector | ✅* | 提交按钮的CSS选择器 | | login.credentials | ✅* | { username, password } | | pages | ✅ | 需要截图的页面数组 | | pages[].name | ✅ | 文件名前缀(例如01_dashboard) | | pages[].path | ✅ | URL路径(例如/dashboard) | | pages[].waitMs | 否 | 导航后的额外等待时间(毫秒),默认为2000 | | descriptions | 否 | name到描述文本的映射(包含在result.json中) |

输出

  • - {outputDir}/{name}.png — 每个页面一张PNG图片
  • {outputDir}/result.json — 包含文件名、标题、URL、描述的元数据

result.json格式

json
{
project: auto-generated,
captureDate: 2026-03-22,
baseUrl: ...,
resolution: 1920x1080,
screenshots: [
{
filename: 01_dashboard.png,
title: Dashboard,
url: ...,
description: ...
}
]
}

同时捕获登录页面

如需将登录页面作为第一张截图,可在pages中添加带有特殊标记的页面:

json
{
pages: [
{ name: 00_login, path: /login, isLoginPage: true, waitMs: 2000 }
]
}

当isLoginPage: true时,脚本会在执行登录前捕获该页面。

高级:自定义Vue Store登录

如果基于表单的登录无法正常工作(例如自定义认证流程),可使用storeLogin替代:

json
{
login: {
url: /login,
storeLogin: {
storeName: user,
method: login,
args: [平台管理员]
}
}
}

这将通过CDP直接调用pinia._s.get(storeName).method(...args)。

故障排除

  • - 图表空白(ECharts/Chart.js):无头Chromium没有GPU。使用Canvas的图表可能渲染为空。已包含--disable-gpu参数。
  • 所有页面重定向到登录页:登录失败。检查选择器是否与实际表单元素匹配。尝试使用storeLogin方式。
  • SPA导航不工作:确保已配置login部分。未配置登录时,将使用page.goto()而非$router.push()。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 sjht-web-screenshot-1776098942 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 sjht-web-screenshot-1776098942 技能

通过命令行安装

skillhub install sjht-web-screenshot-1776098942

下载

⬇ 下载 web-screenshot v1.0.0(免费)

文件大小: 5.33 KB | 发布时间: 2026-4-14 13:50

v1.0.0 最新 2026-4-14 13:50
v1.0.0 — Major overhaul: Migrated from shell script to Node.js with Puppeteer, introducing robust SPA login and advanced screenshot automation.

- Replaced shell script (screenshot.sh) with a Node.js script (screenshot.js) using Puppeteer for modern browser control.
- Supports full login automation for Vue/React/Angular SPAs via CSS selector-based or store-based methods.
- Screenshots are configured via JSON, enabling batch capture with per-page wait, naming, and descriptions.
- Automatically generates a result.json metadata file with detailed capture info.
- Enhanced troubleshooting and advanced config options, such as custom login flows and capturing the login page itself.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部