一键导入
browser
Browser automation with Python Playwright. Use for screenshots, web scraping, form filling, and visual verification of web apps.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Browser automation with Python Playwright. Use for screenshots, web scraping, form filling, and visual verification of web apps.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Convert files between formats (PDF to text, Markdown to HTML, JSON to CSV, CSV to JSON). Use when asked to convert, transform, or export files to different formats.
Persistent memory with semantic search - store and recall information across sessions. Use when asked to remember something, recall previous discussions, or manage long-term memory. Also use proactively to store important discoveries and compact context.
Install software packages at runtime in the Docker container. Use when a required tool or library is missing, or when asked to install packages.
Query SQLite and PostgreSQL databases. Use when asked to run SQL queries, analyze database data, or explore database tables.
MANDATORY final step. Validates task completion through testing and QA before allowing stop.
Track tasks for the current work session. Use this to break down work into steps and track progress. ALWAYS use this when starting a new task - add items first, then mark them done as you complete them.
| name | browser |
| description | Browser automation with Python Playwright. Use for screenshots, web scraping, form filling, and visual verification of web apps. |
Use Python Playwright for browser automation. Chromium is pre-installed.
python3 -c "
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page(viewport={'width': 1280, 'height': 720})
page.goto('https://example.com', wait_until='networkidle', timeout=30000)
page.screenshot(path='screenshot.png')
browser.close()
print('Screenshot saved to screenshot.png')
"
python3 -c "
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page(viewport={'width': 1280, 'height': 720})
page.goto('http://localhost:8000', wait_until='networkidle', timeout=30000)
page.screenshot(path='app_screenshot.png', full_page=True)
browser.close()
print('Screenshot saved to app_screenshot.png')
"
python3 -c "
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto('https://example.com', wait_until='networkidle')
text = page.inner_text('body')
print(text)
browser.close()
"
python3 -c "
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto('https://example.com/login')
page.fill('input[name=\"username\"]', 'myuser')
page.fill('input[name=\"password\"]', 'mypass')
page.click('button[type=\"submit\"]')
page.wait_for_load_state('networkidle')
page.screenshot(path='after_login.png')
browser.close()
"
python3 -c "
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
page.goto('https://example.com')
page.click('a:has-text(\"More information\")')
page.wait_for_load_state('networkidle')
print('Navigated to:', page.url)
page.screenshot(path='after_click.png')
browser.close()
"
| Need | Use |
|---|---|
| Search the web | /websearch (faster, no browser) |
| Download a URL | /fetch |
| Interact with a page | /browser (this skill) |
| Take screenshots | /browser (this skill) |
| Analyze an image | /vision |
| Selector | Description |
|---|---|
#id | Element by ID |
.class | Element by class |
button | Element by tag |
[name="field"] | Element by attribute |
a:has-text("Click") | Link with text |
input[type="submit"] | Input by type |
form >> input | Nested element |
headless=True - No physical display availableviewport={'width': 1280, 'height': 720}wait_until='networkidle' to wait for page to fully loadfull_page=True in screenshot() for long pagesAfter taking a screenshot, use /vision to analyze it:
# Take screenshot
python3 -c "
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page(viewport={'width': 1280, 'height': 720})
page.goto('http://localhost:8000', wait_until='networkidle')
page.screenshot(path='page.png')
browser.close()
"
# Analyze with vision
~/.claude/skills/vision/vision.sh analyze page.png "describe what you see"
If browser fails to launch:
# Check Xvfb is running
pgrep Xvfb
# Check DISPLAY is set
echo $DISPLAY # Should be :99
# Test Playwright
python3 -c "from playwright.sync_api import sync_playwright; print('OK')"