원클릭으로
browser-automation
Browser automation with Playwright — navigate, click, fill forms, scrape
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Browser automation with Playwright — navigate, click, fill forms, scrape
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Google Calendar — list, create, and manage events via gcal CLI
Manage HubSpot CRM — contacts, companies, deals, tickets
Manage Shopify store — products, orders, customers, inventory
Configure audio transcription and image/video understanding for channels
AWS CLI for S3, EC2, Lambda, CloudWatch, RDS, and ECS
Google Calendar — list, create, and manage events via gcal CLI
| name | browser-automation |
| version | 0.1.0 |
| author | devclaw |
| description | Browser automation with Playwright — navigate, click, fill forms, scrape |
| category | automation |
| tags | ["browser","playwright","automation","scraping","web"] |
| requires | {"bins":["npx","node"]} |
Automate web browsers using Playwright for testing, scraping, and automation.
Node.js (required):
brew install nodesudo apt install nodejs npmPlaywright (browsers):
npm install -g playwright # or: npm install playwright (project dependency)
npx playwright install # downloads Chromium, Firefox, WebKit
# Take screenshot
npx playwright screenshot https://example.com screenshot.png
# Generate PDF
npx playwright pdf https://example.com page.pdf
// script.js
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'screenshot.png', fullPage: true });
await browser.close();
})();
node script.js
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
await page.goto('https://example.com/login');
// Fill form
await page.fill('#email', 'user@example.com');
await page.fill('#password', 'secretpassword');
// Click button
await page.click('button[type="submit"]');
// Wait for navigation
await page.waitForURL('**/dashboard');
await browser.close();
})();
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com/products');
// Extract text
const title = await page.textContent('h1');
// Extract multiple elements
const products = await page.$$eval('.product', items =>
items.map(item => ({
name: item.querySelector('.name')?.textContent,
price: item.querySelector('.price')?.textContent
}))
);
console.log(JSON.stringify(products, null, 2));
await browser.close();
})();
page.on('dialog', async dialog => {
console.log(dialog.message());
await dialog.accept();
});
// Wait for element
await page.waitForSelector('.loaded');
// Wait for specific text
await page.waitForSelector('text=Welcome');
// Wait for network idle
await page.waitForLoadState('networkidle');
// Wait with timeout
await page.waitForSelector('.element', { timeout: 5000 });
// Save auth state
const context = await browser.newContext();
await context.storageState({ path: 'auth.json' });
// Load auth state
const context = await browser.newContext({ storageState: 'auth.json' });
# Run with specific browser
npx playwright test --project=chromium
npx playwright test --project=firefox
npx playwright test --project=webkit
# Run headed (visible browser)
npx playwright test --headed
# Debug mode
npx playwright test --debug
# Generate code from actions
npx playwright codegen https://example.com
headless: false to see browser during developmentcodegen to record actions and generate codewaitForLoadState('networkidle') for dynamic contentpage.pause() for debuggingbrowser automation, playwright, web scraping, automate browser, click, fill form, screenshot, web testing