puppeteer-skill – skill Agent & Tự động hóa cho agent AI
Tạo script Puppeteer để tự động hóa trình duyệt, thu thập dữ liệu và tạo PDF. Kích hoạt khi có: "Puppeteer", "headless Chrome", "page.goto", "scrape", "PDF generation".
Cài skill puppeteer-skill bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/puppeteer-skill-b5b06.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /puppeteer-skill – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/puppeteer-skill-b5b06.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $puppeteer-skill – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/puppeteer-skill-b5b06.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /puppeteer-skill – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/puppeteer-skill-b5b06.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /puppeteer-skill – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
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', '[email protected]');
await page.type('#password', 'password123');
await Promise.all([
page.waitForNavigation({ waitUntil: 'networkidle0' }),
page.click('button[type="submit"]'),
]);
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);
// One resolution handler: never continue/abort/respond the same request twice.
page.on('request', request => {
if (request.isInterceptResolutionHandled()) return;
if (request.url().includes('/api/data')) {
return request.respond({
status: 200,
contentType: 'application/json',
body: JSON.stringify({ items: [] }),
});
}
if (request.resourceType() === 'image') return request.abort();
return request.continue();
});TestMu AI Cloud
For full setup, capabilities, and shared capability reference, see [reference/cloud-integration.md](https://github.com/LambdaTest/agent-skills/tree/main/puppeteer-skill/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
| Task | Code |
|------|------|
| Launch headed | puppeteer.launch({ headless: false }) |
| Evaluate JS | await page.evaluate(() => document.title) |
| Extract text | await page.$eval('.el', el => el.textContent) |
| Extract all | await page.$$eval('.items', els => els.map(e => e.textContent)) |
| Set cookie | await page.setCookie({ name: 'token', value: 'abc' }) |
| Emulate device | await page.emulate(puppeteer.devices['iPhone 12']) |
Upstream deep patterns (not bundled)
reference/playbook.md is not present in this AAS tree. Check installed-version APIs before using device/cookie/launch examples. The login selectors are illustrative, not elements on example.com. Use disposable contexts and synthetic accounts, close browsers in finally blocks, and authorize cloud transfer/spend before sending credentials or private pages. Cloud capability URLs may contain secrets; never log them.
| § | Section | Lines |
|---|---------|-------|
| 1 | Production Setup & Configuration | Launch options, Jest integration |
| 2 | Page Object Pattern | BasePage, LoginPage, DashboardPage |
| 3 | Network Interception & Mocking | Request mock, response capture |
| 4 | Wait Strategies | DOM, network, custom conditions |
| 5 | Screenshots, PDF & Media | Full page, clip, PDF, video |
| 6 | Authentication & Cookies | API login, session save/restore |
| 7 | iFrame, Dialog & File Operations | Upload, download, dialogs |
| 8 | Performance & Metrics | Web Vitals, Lighthouse, coverage |
| 9 | Accessibility Testing | axe-core integration |
| 10 | CI/CD Integration | GitHub Actions, Docker |
| 11 | Debugging Quick-Reference | 11 common problems |
| 12 | Best Practices Checklist | 13 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.
Skill liên quan
- pydantic-ai – Xây dựng AI agent sẵn sàng cho production với PydanticAI — dùng công cụ an toàn kiểu dữ…
- quinn – Xác minh hành vi đã đặc tả thông qua các bài test phù hợp và báo cáo coverage trung thực.
- quit-sponsor – Giúp AI agent hỗ trợ cai thuốc lá một cách không phán xét, dựa trên bằng chứng, với theo…
- recursive-context-pruning-token-budgeting – Tối ưu hiệu năng agent AI bằng cách cắt tỉa context dư thừa, quản lý lượng token và buộc…
- reddit-automation – Tự động hóa tác vụ Reddit qua Rube MCP (Composio): tìm kiếm subreddit, tạo bài đăng…
- render-automation – Tự động hóa các tác vụ Render qua Rube MCP (Composio): dịch vụ, deployment, dự án. Luôn…
- restosignals – Tìm nhà hàng và quán bar ở Mỹ trước khi mở cửa, dưới dạng lead đã chấm điểm, tổng hợp từ…
- reverse-browser-automation – Tự động hóa trình duyệt (Playwright) và ứng dụng desktop Windows (UI automation) để thu…