Skip to content
Back to skills

Playwright Overview

ASecurity

This skill should be used when the user asks about "Playwright", "E2E browser tests", "@playwright/test", "playwright config", or needs to set up or run browser end-to-end tests for a web or dApp UI.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
testinggobashnodetestingfrontend

Works with

  • cli

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 22, 2026

npx -y skills add cyotee/indexedex --skill playwright-overview --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Playwright Overview?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Playwright Overview
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cyotee-playwright-overview/badge)](https://www.skillsdirectory.com/skills/cyotee-playwright-overview)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: playwright-overview
description: This skill should be used when the user asks about "Playwright", "E2E browser tests", "@playwright/test", "playwright config", or needs to set up or run browser end-to-end tests for a web or dApp UI.
license: MIT
---

# Playwright Overview

Playwright is a browser automation and E2E test runner for Chromium, Firefox, and WebKit. For DeFi UIs it is the base layer under both **mock-wallet** (Wagmi) and **real-wallet** (Synpress + MetaMask) approaches.

## Install

```bash
npm install --save-dev @playwright/test
npx playwright install
# Chromium is enough for most dApp E2E (Synpress currently Chromium-only)
npx playwright install chromium
```

## Quick smoke test

```ts
// tests/smoke.spec.ts
import { expect, test } from '@playwright/test'

test('load the homepage', async ({ page }) => {
  await page.goto('/')
  await expect(page).toHaveTitle(/App/)
})
```

```json
// package.json
{
  "scripts": {
    "test:e2e": "playwright test",
    "test:e2e:ui": "playwright test --ui"
  }
}
```

## Core concepts

| Concept | Role in DeFi UI tests |
|---------|------------------------|
| `test` / `expect` | Assertions and test cases |
| `page` | Main dApp tab |
| `context` | Browser context (extensions share a context in Synpress) |
| Fixtures | Shared wallet, Anvil client, date helpers |
| `webServer` | Start Anvil + app before tests |
| `page.evaluate` | Call in-page helpers like `window._setupAccount` |
| `addInitScript` | Patch browser globals (e.g. `Date`) before navigation |

## Skills in this plugin

- `playwright-config` — config for serial blockchain tests, reports, CI
- `playwright-fixtures` — `test.extend`, `mergeTests`, wallet/anvil fixtures
- `playwright-webserver` — orchestrate Anvil + frontend via `webServer[]`

## Related marketplace plugins

- `synpress` — MetaMask extension automation on Playwright
- `metamask` — wallet flows, approvals, networks
- `defi-ui-testing` — both mock-connector and Synpress methods for DeFi UIs
- `wagmi`, `foundry` (`anvil-node`) — stack companions

## When not to use Playwright alone

Playwright has no built-in wallet. For wallet UX you either:

1. **Mock** — Wagmi `mock` connector + fixtures (`defi-ui-mock-connector`)
2. **Real extension** — Synpress + MetaMask (`defi-ui-synpress-metamask`)

## Official docs

- https://playwright.dev/docs/intro
- https://playwright.dev/docs/test-fixtures
- https://playwright.dev/docs/test-webserver

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…