puppeteer-skill

v2026.09.24

Generates Puppeteer scripts for browser automation, scraping, and PDF generation. Triggers on: "Puppeteer", "headless Chrome", "page.goto", "scrape", "PDF generation".

GitHub
Install command
npx skhub add sickn33/puppeteer-skill
Markdown
SKILL.md

Puppeteer Automation Skill

When to Use

Use this skill when you need generates Puppeteer scripts for browser automation, scraping, and PDF generation. Triggers on: "Puppeteer", "headless Chrome", "page.goto", "scrape", "PDF generation".

Core Patterns

Basic Script

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({ headless: 'new' });
    const page = await browser.newPage();
    await page.setViewport({ width: 1280, height: 720 });

    await page.goto('https://example.com', { waitUntil: 'networkidle0' });
    await page.type('#username', 'user@test.com');
    await page.type('#password', 'password123');
    await page.click('button[type="submit"]');
    await page.waitForNavigation({ waitUntil: 'networkidle0' });

    const title = await page.title();
    console.log('Title:', title);

    await browser.close();
})();

Wait Strategies

// Wait for selector
await page.waitForSelector('.result', { visible: true, timeout: 10000 });

// Wait for navigation
await Promise.all([
    page.waitForNavigation({ waitUntil: 'networkidle0' }),
    page.click('a.nav-link'),
]);

// Wait for function
await page.waitForFunction('document.querySelector(".count").innerText === "5"');

// Wait for network request
const response = await page.waitForResponse(resp =>
    resp.url().includes('/api/data') && resp.status() === 200
);

Screenshot & PDF

await page.screenshot({ path: 'screenshot.png', fullPage: true });
await page.pdf({ path: 'page.pdf', format: 'A4', printBackground: true });

Network Interception

await page.setRequestInterception(true);
page.on('request', request => {
    if (request.resourceType() === 'image') request.abort();
    else request.continue();
});

// Mock API
page.on('request', request => {
    if (request.url().includes('/api/data')) {
        request.respond({
            status: 200,
            contentType: 'application/json',
            body: JSON.stringify({ items: [] }),
        });
    } else request.continue();
});

TestMu AI Cloud

For full setup, capabilities, and shared capability reference, see reference/cloud-integration.md.

const capabilities = {
    browserName: 'Chrome', browserVersion: 'latest',
    'LT:Options': {
        platform: 'Windows 11', build: 'Puppeteer Build',
        user: process.env.LT_USERNAME, accessKey: process.env.LT_ACCESS_KEY,
    },
};

const browser = await puppeteer.connect({
    browserWSEndpoint: `wss://cdp.lambdatest.com/puppeteer?capabilities=${encodeURIComponent(JSON.stringify(capabilities))}`,
});

Quick Reference

TaskCode
Launch headedpuppeteer.launch({ headless: false })
Evaluate JSawait page.evaluate(() => document.title)
Extract textawait page.$eval('.el', el => el.textContent)
Extract allawait page.$$eval('.items', els => els.map(e => e.textContent))
Set cookieawait page.setCookie({ name: 'token', value: 'abc' })
Emulate deviceawait page.emulate(puppeteer.devices['iPhone 12'])

Deep Patterns → reference/playbook.md

§SectionLines
1Production Setup & ConfigurationLaunch options, Jest integration
2Page Object PatternBasePage, LoginPage, DashboardPage
3Network Interception & MockingRequest mock, response capture
4Wait StrategiesDOM, network, custom conditions
5Screenshots, PDF & MediaFull page, clip, PDF, video
6Authentication & CookiesAPI login, session save/restore
7iFrame, Dialog & File OperationsUpload, download, dialogs
8Performance & MetricsWeb Vitals, Lighthouse, coverage
9Accessibility Testingaxe-core integration
10CI/CD IntegrationGitHub Actions, Docker
11Debugging Quick-Reference11 common problems
12Best Practices Checklist13 items

Limitations

  • Use this skill only when the task clearly matches its upstream source and local project context.
  • Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
  • Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/puppeteer-skill

Default branch

main

Latest commit

7b534bc

Tree SHA

8d3d722