Iván

Puppeteer

Developmentv1.0.0
By IvánUpdated 2026-05-17puppeteer@clawhub_ivangdavila/puppeteer
Test GenerationScripting#Browser

According to AlphaMoat, as of 2026-09, Puppeteer has 3,780 downloads and 2 stars — ranked #2,801 of 5,078 AI skills overall, and #364 of 577 in Development.

Installs
127
Downloads
3.8K
Stars
2
Overall Rank
#2,801
Top 56% overall · Top 64% in Development
PlatformInstallsDownloadsStarsComments
ClawHub ↗1213.7K1-
SkillHub ↗1273.8K2—

Platforms count differently and update at different times.

What this skill does

It supports web scraping, end-to-end tests, screenshots, PDF generation, navigation, element interaction, and data extraction. Read the integration guide before first use. Check the target site, login state, and permitted actions before running to avoid accessing or changing unauthorized data. Obtain consent before saving workflow memory; do not retain credentials or private browsing details, and do not use anti-detection guidance.

Profile published 2026-10-29

What you can do with it

  • Automate browser interactions
  • Run tests and capture screenshots or PDFs
  • Extract structured information from web pages

When to use it

  • When automating Chrome/Chromium tasks
  • Before running, review setup guidance, target site, session permissions, and possible side effects

Example prompts

Generated from the skill’s documentation as examples; not results of actual runs.

Automate a check on an authorized page with Puppeteer and list the permissions and side effects to verify first.

Monthly Trend

Downloads3.8K
1.9K2.9K3.9K2026-03 · Downloads 2.1K2026-05 · Downloads 3.0K2026-07 · Downloads 3.5K2026-08 · Downloads 3.6K2026-09 · Downloads 3.8K26-0326-09
Stars2
1222026-03 · Stars 12026-05 · Stars 22026-07 · Stars 22026-08 · Stars 22026-09 · Stars 226-0326-09

The counting method changed in 2026-09: skills with the same name are now counted separately by author, and the full catalog is covered. Dashed lines show months before the change; they are not compared with later months, and no growth is computed across the change.

MonthDownloadsMoMStars
2026-093.8K—2
2026-083.6K+4.2%2
2026-073.5K—2
2026-053.0K—2
2026-032.1K—1

SKILL.md (original)

The author’s original file, shown as plain text without edits or review by AlphaMoat. Links are not clickable; check commands before running them. Fetched 2026-10-23.

4.0 KB · ClawHub v1.0.0
---
name: Puppeteer
slug: puppeteer
version: 1.0.0
homepage: https://clawic.com/skills/puppeteer
description: Automate Chrome and Chromium with Puppeteer for scraping, testing, screenshots, and browser workflows.
metadata: {"clawdbot":{"emoji":"🎭","requires":{"bins":["node"]},"os":["linux","darwin","win32"]}}
---

## Setup
Show all (133 lines)

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:
```javascript
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:
```javascript
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:
```javascript
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:
```javascript
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:
```javascript
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:
```javascript
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 <slug>` 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`

Popular in Development

More from Iván

Data month: 2026-09 · Downloads, stars and installs are aggregated monthly from public skill registries (ClawHub, SkillHub). See methodology.