[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PCAC3Z278SZZWRPP5RM887":3,"skill-same:01M6PCAC3Z278SZZWRPP5RM887":74},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":25,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":36,"commitSha":55,"skillDirectory":56,"forksCount":13,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M6PCAC3Z278SZZWRPP5RM887","puppeteer-skill",null,"Generates Puppeteer scripts for browser automation, scraping, and PDF generation. Triggers on: \"Puppeteer\", \"headless Chrome\", \"page.goto\", \"scrape\", \"PDF generation\".","duc-duy-1612\u002FOnline-Delivery-Systems-Web","duc-duy-1612","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F192231384?v=4","01M6NSDKQQDKVTHZ8DZMZ1VYY6","01M6NSDKW8DDVTQHBT1HBDDJPT",0,"MIT","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fpuppeteer-skill\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"puppeteer","puppeteer skill","community","for","headless","tree","lambdatest","pdf generation","critical","triggers","main","PDF","agent-skills","scraping","page","scrape","license","chrome","automation","browser automation","2026-11-10 10:12:30",false,"---\nname: puppeteer-skill\ndescription: 'Generates Puppeteer scripts for browser automation, scraping, and PDF generation. Triggers on: \"Puppeteer\", \"headless Chrome\", \"page.goto\", \"scrape\", \"PDF generation\".'\nrisk: critical\nsource: https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Ftree\u002Fmain\u002Fpuppeteer-skill\nsource_repo: LambdaTest\u002Fagent-skills\nsource_type: community\ndate_added: 2026-07-01\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Fblob\u002Fmain\u002FLICENSE\n---\n\n# Puppeteer Automation Skill\n## When to Use\n\nUse 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\".\n\n\n## Core Patterns\n\n### Basic Script\n\n```javascript\nconst puppeteer = require('puppeteer');\n\n(async () => {\n    const browser = await puppeteer.launch({ headless: 'new' });\n    const page = await browser.newPage();\n    await page.setViewport({ width: 1280, height: 720 });\n\n    await page.goto('https:\u002F\u002Fexample.com', { waitUntil: 'networkidle0' });\n    await page.type('#username', 'user@test.com');\n    await page.type('#password', 'password123');\n    await page.click('button[type=\"submit\"]');\n    await page.waitForNavigation({ waitUntil: 'networkidle0' });\n\n    const title = await page.title();\n    console.log('Title:', title);\n\n    await browser.close();\n})();\n```\n\n### Wait Strategies\n\n```javascript\n\u002F\u002F Wait for selector\nawait page.waitForSelector('.result', { visible: true, timeout: 10000 });\n\n\u002F\u002F Wait for navigation\nawait Promise.all([\n    page.waitForNavigation({ waitUntil: 'networkidle0' }),\n    page.click('a.nav-link'),\n]);\n\n\u002F\u002F Wait for function\nawait page.waitForFunction('document.querySelector(\".count\").innerText === \"5\"');\n\n\u002F\u002F Wait for network request\nconst response = await page.waitForResponse(resp =>\n    resp.url().includes('\u002Fapi\u002Fdata') && resp.status() === 200\n);\n```\n\n### Screenshot & PDF\n\n```javascript\nawait page.screenshot({ path: 'screenshot.png', fullPage: true });\nawait page.pdf({ path: 'page.pdf', format: 'A4', printBackground: true });\n```\n\n### Network Interception\n\n```javascript\nawait page.setRequestInterception(true);\npage.on('request', request => {\n    if (request.resourceType() === 'image') request.abort();\n    else request.continue();\n});\n\n\u002F\u002F Mock API\npage.on('request', request => {\n    if (request.url().includes('\u002Fapi\u002Fdata')) {\n        request.respond({\n            status: 200,\n            contentType: 'application\u002Fjson',\n            body: JSON.stringify({ items: [] }),\n        });\n    } else request.continue();\n});\n```\n\n### TestMu AI Cloud\n\nFor full setup, capabilities, and shared capability reference, see [reference\u002Fcloud-integration.md](https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Ftree\u002Fmain\u002Fpuppeteer-skill\u002Freference\u002Fcloud-integration.md).\n\n```javascript\nconst capabilities = {\n    browserName: 'Chrome', browserVersion: 'latest',\n    'LT:Options': {\n        platform: 'Windows 11', build: 'Puppeteer Build',\n        user: process.env.LT_USERNAME, accessKey: process.env.LT_ACCESS_KEY,\n    },\n};\n\nconst browser = await puppeteer.connect({\n    browserWSEndpoint: `wss:\u002F\u002Fcdp.lambdatest.com\u002Fpuppeteer?capabilities=${encodeURIComponent(JSON.stringify(capabilities))}`,\n});\n```\n\n## Quick Reference\n\n| Task | Code |\n|------|------|\n| Launch headed | `puppeteer.launch({ headless: false })` |\n| Evaluate JS | `await page.evaluate(() => document.title)` |\n| Extract text | `await page.$eval('.el', el => el.textContent)` |\n| Extract all | `await page.$$eval('.items', els => els.map(e => e.textContent))` |\n| Set cookie | `await page.setCookie({ name: 'token', value: 'abc' })` |\n| Emulate device | `await page.emulate(puppeteer.devices['iPhone 12'])` |\n\n## Deep Patterns → `reference\u002Fplaybook.md`\n\n| § | Section | Lines |\n|---|---------|-------|\n| 1 | Production Setup & Configuration | Launch options, Jest integration |\n| 2 | Page Object Pattern | BasePage, LoginPage, DashboardPage |\n| 3 | Network Interception & Mocking | Request mock, response capture |\n| 4 | Wait Strategies | DOM, network, custom conditions |\n| 5 | Screenshots, PDF & Media | Full page, clip, PDF, video |\n| 6 | Authentication & Cookies | API login, session save\u002Frestore |\n| 7 | iFrame, Dialog & File Operations | Upload, download, dialogs |\n| 8 | Performance & Metrics | Web Vitals, Lighthouse, coverage |\n| 9 | Accessibility Testing | axe-core integration |\n| 10 | CI\u002FCD Integration | GitHub Actions, Docker |\n| 11 | Debugging Quick-Reference | 11 common problems |\n| 12 | Best Practices Checklist | 13 items |\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n","# Puppeteer Automation Skill\n## When to Use\n\nUse 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\".\n\n\n## Core Patterns\n\n### Basic Script\n\n```javascript\nconst puppeteer = require('puppeteer');\n\n(async () => {\n    const browser = await puppeteer.launch({ headless: 'new' });\n    const page = await browser.newPage();\n    await page.setViewport({ width: 1280, height: 720 });\n\n    await page.goto('https:\u002F\u002Fexample.com', { waitUntil: 'networkidle0' });\n    await page.type('#username', 'user@test.com');\n    await page.type('#password', 'password123');\n    await page.click('button[type=\"submit\"]');\n    await page.waitForNavigation({ waitUntil: 'networkidle0' });\n\n    const title = await page.title();\n    console.log('Title:', title);\n\n    await browser.close();\n})();\n```\n\n### Wait Strategies\n\n```javascript\n\u002F\u002F Wait for selector\nawait page.waitForSelector('.result', { visible: true, timeout: 10000 });\n\n\u002F\u002F Wait for navigation\nawait Promise.all([\n    page.waitForNavigation({ waitUntil: 'networkidle0' }),\n    page.click('a.nav-link'),\n]);\n\n\u002F\u002F Wait for function\nawait page.waitForFunction('document.querySelector(\".count\").innerText === \"5\"');\n\n\u002F\u002F Wait for network request\nconst response = await page.waitForResponse(resp =>\n    resp.url().includes('\u002Fapi\u002Fdata') && resp.status() === 200\n);\n```\n\n### Screenshot & PDF\n\n```javascript\nawait page.screenshot({ path: 'screenshot.png', fullPage: true });\nawait page.pdf({ path: 'page.pdf', format: 'A4', printBackground: true });\n```\n\n### Network Interception\n\n```javascript\nawait page.setRequestInterception(true);\npage.on('request', request => {\n    if (request.resourceType() === 'image') request.abort();\n    else request.continue();\n});\n\n\u002F\u002F Mock API\npage.on('request', request => {\n    if (request.url().includes('\u002Fapi\u002Fdata')) {\n        request.respond({\n            status: 200,\n            contentType: 'application\u002Fjson',\n            body: JSON.stringify({ items: [] }),\n        });\n    } else request.continue();\n});\n```\n\n### TestMu AI Cloud\n\nFor full setup, capabilities, and shared capability reference, see [reference\u002Fcloud-integration.md](https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Ftree\u002Fmain\u002Fpuppeteer-skill\u002Freference\u002Fcloud-integration.md).\n\n```javascript\nconst capabilities = {\n    browserName: 'Chrome', browserVersion: 'latest',\n    'LT:Options': {\n        platform: 'Windows 11', build: 'Puppeteer Build',\n        user: process.env.LT_USERNAME, accessKey: process.env.LT_ACCESS_KEY,\n    },\n};\n\nconst browser = await puppeteer.connect({\n    browserWSEndpoint: `wss:\u002F\u002Fcdp.lambdatest.com\u002Fpuppeteer?capabilities=${encodeURIComponent(JSON.stringify(capabilities))}`,\n});\n```\n\n## Quick Reference\n\n| Task | Code |\n|------|------|\n| Launch headed | `puppeteer.launch({ headless: false })` |\n| Evaluate JS | `await page.evaluate(() => document.title)` |\n| Extract text | `await page.$eval('.el', el => el.textContent)` |\n| Extract all | `await page.$$eval('.items', els => els.map(e => e.textContent))` |\n| Set cookie | `await page.setCookie({ name: 'token', value: 'abc' })` |\n| Emulate device | `await page.emulate(puppeteer.devices['iPhone 12'])` |\n\n## Deep Patterns → `reference\u002Fplaybook.md`\n\n| § | Section | Lines |\n|---|---------|-------|\n| 1 | Production Setup & Configuration | Launch options, Jest integration |\n| 2 | Page Object Pattern | BasePage, LoginPage, DashboardPage |\n| 3 | Network Interception & Mocking | Request mock, response capture |\n| 4 | Wait Strategies | DOM, network, custom conditions |\n| 5 | Screenshots, PDF & Media | Full page, clip, PDF, video |\n| 6 | Authentication & Cookies | API login, session save\u002Frestore |\n| 7 | iFrame, Dialog & File Operations | Upload, download, dialogs |\n| 8 | Performance & Metrics | Web Vitals, Lighthouse, coverage |\n| 9 | Accessibility Testing | axe-core integration |\n| 10 | CI\u002FCD Integration | GitHub Actions, Docker |\n| 11 | Debugging Quick-Reference | 11 common problems |\n| 12 | Best Practices Checklist | 13 items |\n\n## Limitations\n\n- Use this skill only when the task clearly matches its upstream source and local project context.\n- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.\n- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.\n",{"name":5,"risk":34,"source":51,"license":14,"date_added":52,"description":7,"source_repo":53,"source_type":28,"license_source":54},"https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Ftree\u002Fmain\u002Fpuppeteer-skill",1782864000000,"LambdaTest\u002Fagent-skills","https:\u002F\u002Fgithub.com\u002FLambdaTest\u002Fagent-skills\u002Fblob\u002Fmain\u002FLICENSE","f3312ba749561b6159f477dbfc9313c875d40a56",".agents\u002Fskills_archive\u002Fpuppeteer-skill","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612","2026-10-25 23:50:58",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill puppeteer-skill",{"tool":66,"command":67},"bunx","bunx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill puppeteer-skill",{"tool":69,"command":70},"pnpm","pnpm dlx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill puppeteer-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fpuppeteer-skill\u002FSKILL.md",true,[],[75,101,125,149,177,201],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":84,"publishedAt":46},"01M6Q0FA5FZ410Z33Z3TFQ4DBA","zero-trust","Implement zero-trust network architecture. Configure identity-based access, micro-segmentation, and continuous verification. Use when implementing modern security architectures.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzero-trust\u002FSKILL.md",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",[85,86,87,88,89,90,77,91,92,93,94,95,28,36,96,34,97,98,99,100],"ZeRO","trust","zero trust","architecture","assessment","verification","segmentation","devops-security","access","configure","only","active","scope","scripts","relevant","implementing",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":46},"01M6Q0F1YZJW3KX5FBKEVZ8CV4","zcode-delegate","Delegate coding tasks to the Z.AI ZCode CLI only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzcode-delegate\u002FSKILL.md",[],[108,109,110,111,112,113,114,115,116,117,118,119,120,95,121,28,122,123,34,124],"delegate","zcode","zcode delegate","review","cli","orchestration","tasks","run","Bash","model","node","read","orchestrator","files","desktop app","app","agent-orchestration",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":46},"01M6Q0ETK41VGNMYEXW0T00AJN","youtube-transcript","Fetch YouTube transcripts through DeepAPI or local fallback tooling and save clean text output.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript\u002FSKILL.md",[],[132,133,134,135,136,137,138,42,139,140,141,142,143,28,36,144,145,146,147,148],"transcript","youtube transcript","youtube","safe","github","codex","research","https","text","fetch","tooling","clean","local","output","deepapi","youtube transcripts","blob",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":166,"publishedAt":46},"01M6Q0EPPH2PVMDW40017F8WX0","youtube-transcript-skills","Fetch YouTube video transcripts, search videos\u002Fchannels, browse channels, and extract playlists via the getyoutubetranscript.com API - free tier, no card required.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript-skills\u002FSKILL.md",[155,158,161],{"categoryNo":156,"categoryName":157,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":159,"categoryName":160,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":162,"categoryName":163,"taxonomyType":164,"taxonomyTypeDesc":165},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[132,133,134,167,135,168,136,137,42,169,170,171,172,141,173,28,36,174,175,176],"youtube transcript skills","gemini","search","api","Video","browse","api-integration","free","card","channels",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":187,"publishedAt":46},"01M6Q0EAB96PX83W5PTE8A0R8D","youtube-notetaker","Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-notetaker\u002FSKILL.md",[183,186],{"categoryNo":184,"categoryName":185,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":159,"categoryName":160,"taxonomyType":20,"taxonomyTypeDesc":21},[134,188,189,112,135,190,191,192,193,42,171,194,195,196,197,36,198,144,199,200],"youtube notetaker","notetaker","workflow","official","notes","code","markdown","slides","annotations","README","study","dair-academy","viewer",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":208,"publishedAt":46},"01M6Q0E55F0GW5MX48V8HXS8B5","youtube-full","Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-full\u002FSKILL.md",[207],{"categoryNo":156,"categoryName":157,"taxonomyType":20,"taxonomyTypeDesc":21},[209,134,210,211,135,168,169,212,213,170,171,172,141,214,173,28,36,174,215,147],"youtube full","full","google","server","dlp","credits","automatic"]