一键导入
playwright-cli
Playwright automation via bundled run.js. Write scripts in /tmp, execute with terminal_run from /app/codes/skills/playwright-cli.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Playwright automation via bundled run.js. Write scripts in /tmp, execute with terminal_run from /app/codes/skills/playwright-cli.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, or extract information from web pages.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
(한국 사용자 전용) 학교알리미와 컴시간을 이용하여 전국 학교 시간표와 급식을 가져옵니다. 이 스킬에는 브라우저를 이용한 웹 크롤링과 비공식 API 호출 방법 및 컴시간 난독화 우회 방법이 모두 포함되어 있습니다.
| name | playwright-cli |
| description | Playwright automation via bundled run.js. Write scripts in /tmp, execute with terminal_run from /app/codes/skills/playwright-cli. |
Use only when browser-use cannot do the job (rare). Prefer browser-use for normal browsing.
terminal_run. Skill path: /app/codes/skills/playwright-cli.npx playwright install unless the user asks.pwDefaults.launchOptions())./tmp/playwright-test-*.js only — never the skill dir or user project.TARGET_URL constant at the top of the script.cd /app/codes/skills/playwright-cli && node -e "require('./lib/helpers').detectDevServers().then(s => console.log(JSON.stringify(s)))"
/tmp/playwright-test-*.js.cd /app/codes/skills/playwright-cli && node run.js /tmp/playwright-test-*.js
run.js injects chromium, helpers, pwDefaults, and getContextOptionsWithHeaders.
// /tmp/playwright-test-example.js
const { chromium } = require("playwright");
const pwDefaults = require("./pw-defaults");
const TARGET_URL = "https://example.com";
(async () => {
const browser = await chromium.launch(pwDefaults.launchOptions());
const context = await browser.newContext(pwDefaults.contextOptions());
const page = await context.newPage();
await pwDefaults.applyStealth(page);
await page.goto(TARGET_URL, { waitUntil: "networkidle", timeout: 30000 });
console.log("Title:", await page.title());
await page.screenshot({ path: "/tmp/screenshot.png", fullPage: true });
await browser.close();
})();
lib/helpers.js — detectDevServers(), safeClick(), safeType(), takeScreenshot(), handleCookieBanner().
const helpers = require("./lib/helpers");
const servers = await helpers.detectDevServers();
pwDefaults — disables automation flags, sets UA/viewport, patches navigator.webdriver.waitForSelector / waitForURL over fixed waitForTimeout.try/catch/finally and always browser.close() in finally./tmp/ only.cd /app/codes/skills/playwright-cli && node run.js …await page.waitForSelector('.el', { timeout: 10000 })cd /app/codes/skills/playwright-cli && npm run setup