← 返回 Skills 市场
xuxingling55-sketch

Hilda Puppeteer

作者 xuxingling55-sketch · GitHub ↗ · v1.0.0 · MIT-0
linuxdarwinwin32 ⚠ suspicious
113
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install hilda-puppeteer
功能描述
Automate Chrome and Chromium with Puppeteer for scraping, testing, screenshots, and browser workflows.
使用说明 (SKILL.md)

Setup

On first use, read setup.md for integration guidelines.

When to Use

User needs browser automation: web scraping, E2E testing, PDF generation, screenshots, or any headless Chrome task. Agent handles page navigation, element interaction, waiting strategies, and data extraction.

Architecture

Scripts and outputs in ~/puppeteer/. See memory-template.md for structure.

~/puppeteer/
├── memory.md       # Status + preferences
├── scripts/        # Reusable automation scripts
└── output/         # Screenshots, PDFs, scraped data

Quick Reference

Topic File
Setup process setup.md
Memory template memory-template.md
Selectors guide selectors.md
Waiting patterns waiting.md

Core Rules

1. Always Wait Before Acting

Never click or type immediately after navigation. Always wait for the element:

await page.waitForSelector('#button');
await page.click('#button');

Clicking without waiting causes "element not found" errors 90% of the time.

2. Use Specific Selectors

Prefer stable selectors in this order:

  1. [data-testid="submit"] — test attributes (most stable)
  2. #unique-id — IDs
  3. form button[type="submit"] — semantic combinations
  4. .class-name — classes (least stable, changes often)

Avoid: div > div > div > button — breaks on any DOM change.

3. Handle Navigation Explicitly

After clicks that navigate, wait for navigation:

await Promise.all([
  page.waitForNavigation(),
  page.click('a.next-page')
]);

Without this, the script continues before the new page loads.

4. Set Realistic Viewport

Always set viewport for consistent rendering:

await page.setViewport({ width: 1280, height: 800 });

Default viewport is 800x600 — many sites render differently or show mobile views.

5. Handle Popups and Dialogs

Dismiss dialogs before they block interaction:

page.on('dialog', async dialog => {
  await dialog.dismiss(); // or dialog.accept()
});

Unhandled dialogs freeze the script.

6. Close Browser on Errors

Always wrap in try/finally:

const browser = await puppeteer.launch();
try {
  // ... automation code
} finally {
  await browser.close();
}

Leaked browser processes consume memory and ports.

7. Respect Rate Limits

Add delays between requests to avoid blocks:

await page.waitForTimeout(1000 + Math.random() * 2000);

Hammering sites triggers CAPTCHAs and IP bans.

Common Traps

  • page.click() on invisible element → fails silently, use waitForSelector with visible: true
  • Screenshots of elements off-screen → blank image, scroll into view first
  • page.evaluate() returns undefined → cannot return DOM nodes, only serializable data
  • Headless blocked by site → use headless: 'new' or set user agent
  • Form submit reloads page → page.waitForNavigation() or data is lost
  • Shadow DOM elements invisible to selectors → use page.evaluateHandle() to pierce shadow roots
  • Cookies not persisting → launch with userDataDir for session persistence

Security & Privacy

Data that stays local:

  • All scraped data in ~/puppeteer/output/
  • Browser profile in specified userDataDir

This skill does NOT:

  • Send scraped data anywhere
  • Store credentials (you provide them per-script)
  • Access files outside ~/puppeteer/

Related Skills

Install with clawhub install \x3Cslug> if user confirms:

  • playwright — Cross-browser automation alternative
  • chrome — Chrome DevTools and debugging
  • web — General web development

Feedback

  • If useful: clawhub star puppeteer
  • Stay updated: clawhub sync
安全使用建议
This skill appears to do what it claims (Puppeteer automation) and doesn't demand any secrets, but there are red flags you should consider before installing or running it: 1) The setup encourages running npm install, which will download code and (for full puppeteer) Chromium — run installs only in a controlled environment (sandbox/container/VM) and inspect package versions. 2) The instructions exhort the agent to act without asking the user and to save a local memory file without surfacing the path; confirm whether the agent will actually run commands or only provide scripts, and insist on explicit user approval before the agent executes installs or scripts. 3) Review any scripts the agent creates under ~/puppeteer/scripts/ before running them — look for network calls, unexpected POSTs, or references to external endpoints. 4) If you will scrape sites requiring credentials or handling PII, restrict where memory/data are stored and consider encrypting or opting out of automatic persistence. 5) Prefer running initial tests in an isolated environment and enable logging or auditing so you can see what files were created and what network requests the agent made. If you need, ask the maintainer/source for signed release notes or a repository you can review before use.
功能分析
Type: OpenClaw Skill Name: hilda-puppeteer Version: 1.0.0 The skill bundle provides a comprehensive and well-documented framework for browser automation using Puppeteer. The instructions in SKILL.md and setup.md focus on best practices for web scraping and testing, such as handling asynchronous navigation and element selection. There are no indicators of data exfiltration, malicious execution, or unauthorized access; the code explicitly emphasizes keeping data local to the ~/puppeteer/ directory.
能力评估
Purpose & Capability
Name/description, required binary (node), and guidance about puppeteer/pupeteer-core are coherent. The skill is instruction-only and focuses on browser automation (scraping, testing, screenshots), so asking for node and recommending npm install puppeteer is expected.
Instruction Scope
SKILL.md and setup.md instruct the agent to detect system state (node version, npm list), create and write scripts under ~/puppeteer/, and persist a memory file. Two instructions are concerning: (1) 'Don't ask — just start naturally' encourages agent action without explicit user consent; (2) 'Store in ~/puppeteer/memory.md without mentioning file paths to them' asks the agent to save learned target sites and patterns while intentionally not telling the user where they're stored. The skill also asserts 'This skill does NOT: Send scraped data anywhere', but as an instruction-only skill there is no enforcement — scripts the agent generates could still exfiltrate data unless audited.
Install Mechanism
No formal install spec (lowest disk-write risk). However setup.md explicitly guides running 'npm install puppeteer' or 'puppeteer-core', which will download packages and (for full puppeteer) a Chromium binary from the network. That is expected for this purpose but is an install action executed at runtime and should be approved by the user and run in a controlled environment.
Credentials
The skill requests no environment variables, no credentials, and no config paths. It mentions per-script credentials are 'provided by you', which is proportionate. Still note: stored memory may include 'target sites or apps' and 'auth patterns'—sensitive data that will be kept locally per the spec, so users should verify where and how that data is saved.
Persistence & Privilege
always:false (good). But the skill encourages autonomous actions ('Don't ask — just start naturally') and instructs the agent to persist memory without visible disclosure. Because the platform allows autonomous skill invocation by default, these instructions increase the risk of the agent acting or storing sensitive data without clear user consent. This combination raises transparency and privacy concerns even if not an outright privilege escalation.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install hilda-puppeteer
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /hilda-puppeteer 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of hilda-puppeteer for browser automation. - Automate Chrome/Chromium for scraping, E2E testing, screenshots, and PDF generation. - Includes guidance on stable selectors, waiting patterns, rate limiting, and browser management. - Organizes automation scripts and output in a dedicated directory structure. - Addresses common Puppeteer pitfalls and browser automation best practices. - Stores all data locally; no credentials or data sent externally. - Lists related skills for extended web automation capabilities.
元数据
Slug hilda-puppeteer
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Hilda Puppeteer 是什么?

Automate Chrome and Chromium with Puppeteer for scraping, testing, screenshots, and browser workflows. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 113 次。

如何安装 Hilda Puppeteer?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install hilda-puppeteer」即可一键安装,无需额外配置。

Hilda Puppeteer 是免费的吗?

是的,Hilda Puppeteer 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Hilda Puppeteer 支持哪些平台?

Hilda Puppeteer 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(linux, darwin, win32)。

谁开发了 Hilda Puppeteer?

由 xuxingling55-sketch(@xuxingling55-sketch)开发并维护,当前版本 v1.0.0。

💬 留言讨论