---
id: sm-playwright
name: "playwright"
url: https://skills.yangsir.net/skill/sm-playwright
author: openai
domain: automation
tags: ["playwright", "end-to-end-testing", "browser-automation", "web-scraping", "test-automation"]
install_count: 2700
rating: 4.40 (50 reviews)
github: https://github.com/openai/skills
---

# playwright

> 通过Playwright CLI在终端驱动真实浏览器进行自动化操作，适用于测试、爬虫等场景，无需全局安装。

**Stats**: 2,700 installs · 4.4/5 (50 reviews)

## Before / After 对比

### Playwright自动化，浏览器操作无忧

## Readme

# playwright

# Playwright CLI Skill

Drive a real browser from the terminal using `playwright-cli`. Prefer the bundled wrapper script so the CLI works even when it is not globally installed.
Treat this skill as CLI-first automation. Do not pivot to `@playwright/test` unless the user explicitly asks for test files.

## Prerequisite check (required)

Before proposing commands, check whether `npx` is available (the wrapper depends on it):

```
command -v npx >/dev/null 2>&1

```

If it is not available, pause and ask the user to install Node.js/npm (which provides `npx`). Provide these steps verbatim:

```
# Verify Node/npm are installed
node --version
npm --version

# If missing, install Node.js/npm, then:
npm install -g @playwright/cli@latest
playwright-cli --help

```

Once `npx` is present, proceed with the wrapper script. A global install of `playwright-cli` is optional.

## Skill path (set once)

```
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh"

```

User-scoped skills install under `$CODEX_HOME/skills` (default: `~/.codex/skills`).

## Quick start

Use the wrapper script:

```
"$PWCLI" open https://playwright.dev --headed
"$PWCLI" snapshot
"$PWCLI" click e15
"$PWCLI" type "Playwright"
"$PWCLI" press Enter
"$PWCLI" screenshot

```

If the user prefers a global install, this is also valid:

```
npm install -g @playwright/cli@latest
playwright-cli --help

```

## Core workflow

- Open the page.

- Snapshot to get stable element refs.

- Interact using refs from the latest snapshot.

- Re-snapshot after navigation or significant DOM changes.

- Capture artifacts (screenshot, pdf, traces) when useful.

Minimal loop:

```
"$PWCLI" open https://example.com
"$PWCLI" snapshot
"$PWCLI" click e3
"$PWCLI" snapshot

```

## When to snapshot again

Snapshot again after:

- navigation

- clicking elements that change the UI substantially

- opening/closing modals or menus

- tab switches

Refs can go stale. When a command fails due to a missing ref, snapshot again.

## Recommended patterns

### Form fill and submit

```
"$PWCLI" open https://example.com/form
"$PWCLI" snapshot
"$PWCLI" fill e1 "user@example.com"
"$PWCLI" fill e2 "password123"
"$PWCLI" click e3
"$PWCLI" snapshot

```

### Debug a UI flow with traces

```
"$PWCLI" open https://example.com --headed
"$PWCLI" tracing-start
# ...interactions...
"$PWCLI" tracing-stop

```

### Multi-tab work

```
"$PWCLI" tab-new https://example.com
"$PWCLI" tab-list
"$PWCLI" tab-select 0
"$PWCLI" snapshot

```

## Wrapper script

The wrapper script uses `npx --package @playwright/cli playwright-cli` so the CLI can run without a global install:

```
"$PWCLI" --help

```

Prefer the wrapper unless the repository already standardizes on a global install.

## References

Open only what you need:

- CLI command reference: `references/cli.md`

- Practical workflows and troubleshooting: `references/workflows.md`

## Guardrails

- Always snapshot before referencing element ids like `e12`.

- Re-snapshot when refs seem stale.

- Prefer explicit commands over `eval` and `run-code` unless needed.

- When you do not have a fresh snapshot, use placeholder refs like `eX` and say why; do not bypass refs with `run-code`.

- Use `--headed` when a visual check will help.

- When capturing artifacts in this repo, use `output/playwright/` and avoid introducing new top-level artifact folders.

- Default to CLI commands and workflows, not Playwright test specs.

Weekly Installs691Repository[openai/skills](https://github.com/openai/skills)GitHub Stars14.5KFirst SeenFeb 1, 2026Security Audits[Gen Agent Trust HubFail](/openai/skills/playwright/security/agent-trust-hub)[SocketPass](/openai/skills/playwright/security/socket)[SnykFail](/openai/skills/playwright/security/snyk)Installed oncodex606opencode559gemini-cli517github-copilot493cursor475kimi-cli473

---
*Source: https://skills.yangsir.net/skill/sm-playwright*
*Markdown mirror: https://skills.yangsir.net/api/skill/sm-playwright/markdown*