@playdrop/playdrop-cli 0.14.8 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/client-meta.json +2 -2
- package/dist/commands/agents.js +1 -1
- package/dist/commands/worker.js +2 -2
- package/node_modules/@playdrop/api-client/dist/client.d.ts +3 -1
- package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +3 -1
- package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
- package/node_modules/@playdrop/api-client/dist/domains/admin.js +46 -2
- package/node_modules/@playdrop/config/client-meta.json +2 -2
- package/node_modules/@playdrop/types/dist/api.d.ts +96 -1
- package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
- package/node_modules/@playdrop/types/dist/api.js +17 -0
- package/node_modules/@playwright/mcp/LICENSE +201 -0
- package/node_modules/@playwright/mcp/README.md +1592 -0
- package/node_modules/@playwright/mcp/cli.js +32 -0
- package/node_modules/@playwright/mcp/config.d.ts +239 -0
- package/node_modules/@playwright/mcp/index.d.ts +23 -0
- package/node_modules/@playwright/mcp/index.js +19 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/LICENSE +202 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/NOTICE +5 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/README.md +318 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/ThirdPartyNotices.txt +14 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/cli.js +19 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/index.d.ts +17 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/index.js +17 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/index.mjs +18 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/jsx-runtime.js +42 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/jsx-runtime.mjs +21 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/agentParser.js +89 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/copilot-setup-steps.yml +34 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/generateAgents.js +395 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-coverage.prompt.md +31 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-generate.prompt.md +8 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-generator.agent.md +88 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-heal.prompt.md +6 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-healer.agent.md +56 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-plan.prompt.md +9 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/playwright-test-planner.agent.md +74 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/cli/reportActions.js +78 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/cli/testActions.js +213 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/common/index.js +2966 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/common/index.js.txt +34 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/errorContext.js +129 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/globals.js +58 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/index.js +783 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/isomorphic.js +260 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/isomorphic.js.txt +9 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/loader/loaderProcessEntry.js +34 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/loader/loaderProcessEntry.js.txt +9 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/matchers/expect.js +13480 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/matchers/expect.js.LICENSE +640 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/matchers/expect.js.txt +67 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/browserBackend.js +125 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/generatorTools.js +122 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/plannerTools.js +150 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/seed.js +82 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/streams.js +44 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/testBackend.js +99 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/testContext.js +306 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/testTool.js +30 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/mcp/test/testTools.js +98 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/package.js +47 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/program.js +237 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/runner/index.js +8154 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/runner/index.js.txt +59 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/babelBundle.js +72275 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/babelBundle.js.LICENSE +2384 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/babelBundle.js.txt +325 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/esmLoader.js +8060 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/esmLoader.js.LICENSE +355 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/transform/esmLoader.js.txt +60 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/util.js +373 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/worker/workerProcessEntry.js +1850 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/lib/worker/workerProcessEntry.js.txt +19 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/package.json +58 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/test.d.ts +18 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/test.js +24 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/test.mjs +35 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/types/test.d.ts +10709 -0
- package/node_modules/@playwright/mcp/node_modules/playwright/types/testReporter.d.ts +908 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/LICENSE +202 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/NOTICE +5 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/README.md +3 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/ThirdPartyNotices.txt +13 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/install_media_pack.ps1 +5 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/install_webkit_wsl.ps1 +33 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh +42 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh +13 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_beta_win.ps1 +24 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh +42 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh +12 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_chrome_stable_win.ps1 +24 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh +48 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh +11 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_beta_win.ps1 +23 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh +48 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh +11 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_dev_win.ps1 +23 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh +48 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh +11 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/bin/reinstall_msedge_stable_win.ps1 +24 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/browsers.json +81 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/cli.js +21 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/index.d.ts +17 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/index.js +17 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/index.mjs +28 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/bootstrap.js +88 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/coreBundle.js +74495 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/entry/cliDaemon.js +5 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/entry/dashboardApp.js +3 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/entry/mcp.js +10 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/entry/oopBrowserDownload.js +3 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/package.js +50 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/server/chromium/appIcon.png +0 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/server/electron/loader.js +118 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/serverRegistry.js +7347 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/serverRegistry.js.LICENSE +354 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/channelSessions.js +141 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/cli.js +6 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/help.json +707 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/minimist.js +128 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/output.js +343 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/program.js +404 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/registry.js +176 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/session.js +258 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/SKILL.md +420 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/element-attributes.md +23 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/playwright-tests.md +39 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/request-mocking.md +87 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/running-code.md +241 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/session-management.md +225 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/storage-state.md +275 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/test-generation.md +433 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/tracing.md +139 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/cli-client/skill/references/video-recording.md +143 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/dashboard/appIcon.png +0 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/trace/SKILL.md +171 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/utils/extension.js +78 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/tools/utils/socketConnection.js +108 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/utilsBundle.js +90764 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +2179 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/codicon-DCmgc-ay.ttf +0 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-1bWoP6pv.svg +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-beta-k3eOH_eK.svg +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-nightly-Cp5nfeDT.svg +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/index-CyWAfh-p.js +11 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/index-DhC616m4.css +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/assets/safari-na3_-uQk.svg +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/index.html +29 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/dashboard/playwright-logo.svg +24 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/htmlReport/index.html +16 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/htmlReport/report.css +2 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/htmlReport/report.js +32 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule--QdMvsKi.css +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-BVGIAA-i.js +32 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/index-BQ57a3QC.js +129 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/assets/index-l_lX622x.css +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/index.html +29 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/recorder/playwright-logo.svg +9 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-BSEO6m_i.js +32 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-CT5oRh4X.js +181 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/assets/urlMatch-L3liM589.js +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/assets/xtermModule-BN2nOuEV.js +7 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/codeMirrorModule.-QdMvsKi.css +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.BLFoOugd.css +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/index.B_TqY17P.css +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/index.DLSGjmWZ.js +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/index.html +44 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/manifest.webmanifest +16 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/playwright-logo.svg +9 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/snapshot.B_Jk1wbt.js +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/snapshot.html +10 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +4 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/uiMode.C7UW1sC9.css +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CZvydVOh.js +5 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +18 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/vite/traceViewer/xtermModule.kHJ-D0s7.css +1 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/lib/xdg-open +1267 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/package.json +34 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/types/protocol.d.ts +24842 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/types/structs.d.ts +45 -0
- package/node_modules/@playwright/mcp/node_modules/playwright-core/types/types.d.ts +26088 -0
- package/node_modules/@playwright/mcp/package.json +51 -0
- package/package.json +3 -1
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# 🎭 Playwright
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/playwright) <!-- GEN:chromium-version-badge -->[](https://www.chromium.org/Home)<!-- GEN:stop --> <!-- GEN:firefox-version-badge -->[](https://www.mozilla.org/en-US/firefox/new/)<!-- GEN:stop --> <!-- GEN:webkit-version-badge -->[](https://webkit.org/)<!-- GEN:stop --> [](https://aka.ms/playwright/discord)
|
|
4
|
+
|
|
5
|
+
## [Documentation](https://playwright.dev) | [API reference](https://playwright.dev/docs/api/class-playwright)
|
|
6
|
+
|
|
7
|
+
Playwright is a framework for web automation and testing. It drives Chromium, Firefox, and WebKit with a single API — in your tests, in your scripts, and as a tool for AI agents.
|
|
8
|
+
|
|
9
|
+
## Get Started
|
|
10
|
+
|
|
11
|
+
Choose the path that fits your workflow:
|
|
12
|
+
|
|
13
|
+
| | Best for | Install |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| **[Playwright Test](#playwright-test)** | End-to-end testing | `npm init playwright@latest` |
|
|
16
|
+
| **[Playwright CLI](#playwright-cli)** | Coding agents (Claude Code, Copilot) | `npm i -g @playwright/cli@latest` |
|
|
17
|
+
| **[Playwright MCP](#playwright-mcp)** | AI agents and LLM-driven automation | `npx @playwright/mcp@latest` |
|
|
18
|
+
| **[Playwright Library](#playwright-library)** | Browser automation scripts | `npm i playwright` |
|
|
19
|
+
| **[VS Code Extension](#vs-code-extension)** | Test authoring and debugging in VS Code | [Install from Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright) |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Playwright Test
|
|
24
|
+
|
|
25
|
+
Playwright Test is a full-featured test runner built for end-to-end testing. It runs tests across Chromium, Firefox, and WebKit with full browser isolation, auto-waiting, and web-first assertions.
|
|
26
|
+
|
|
27
|
+
### Install
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm init playwright@latest
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Or add manually:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm i -D @playwright/test
|
|
37
|
+
npx playwright install
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Write a test
|
|
41
|
+
|
|
42
|
+
```TypeScript
|
|
43
|
+
import { test, expect } from '@playwright/test';
|
|
44
|
+
|
|
45
|
+
test('has title', async ({ page }) => {
|
|
46
|
+
await page.goto('https://playwright.dev/');
|
|
47
|
+
await expect(page).toHaveTitle(/Playwright/);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('get started link', async ({ page }) => {
|
|
51
|
+
await page.goto('https://playwright.dev/');
|
|
52
|
+
await page.getByRole('link', { name: 'Get started' }).click();
|
|
53
|
+
await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Run tests
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npx playwright test
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Tests run in parallel across all configured browsers, in headless mode by default. Each test gets a fresh browser context — full isolation with near-zero overhead.
|
|
64
|
+
|
|
65
|
+
### Key capabilities
|
|
66
|
+
|
|
67
|
+
**Auto-wait and web-first assertions.** No artificial timeouts. Playwright waits for elements to be actionable, and assertions automatically retry until conditions are met.
|
|
68
|
+
|
|
69
|
+
**Locators.** Find elements with resilient locators that mirror how users see the page:
|
|
70
|
+
|
|
71
|
+
```TypeScript
|
|
72
|
+
page.getByRole('button', { name: 'Submit' })
|
|
73
|
+
page.getByLabel('Email')
|
|
74
|
+
page.getByPlaceholder('Search...')
|
|
75
|
+
page.getByTestId('login-form')
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Test isolation.** Each test runs in its own browser context — equivalent to a fresh browser profile. Save authentication state once and reuse it across tests:
|
|
79
|
+
|
|
80
|
+
```TypeScript
|
|
81
|
+
// Save state after login
|
|
82
|
+
await page.context().storageState({ path: 'auth.json' });
|
|
83
|
+
|
|
84
|
+
// Reuse in other tests
|
|
85
|
+
test.use({ storageState: 'auth.json' });
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Tracing.** Capture execution traces, screenshots, and videos on failure. Inspect every action, DOM snapshot, network request, and console message in the [Trace Viewer](https://playwright.dev/docs/trace-viewer):
|
|
89
|
+
|
|
90
|
+
```TypeScript
|
|
91
|
+
// playwright.config.ts
|
|
92
|
+
export default defineConfig({
|
|
93
|
+
use: {
|
|
94
|
+
trace: 'on-first-retry',
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx playwright show-trace trace.zip
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
<!-- TODO: screenshot of trace viewer -->
|
|
104
|
+
|
|
105
|
+
**Parallelism.** Tests run in parallel by default across all configured browsers.
|
|
106
|
+
|
|
107
|
+
[Full testing documentation](https://playwright.dev/docs/intro)
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Playwright CLI
|
|
112
|
+
|
|
113
|
+
[Playwright CLI](https://github.com/microsoft/playwright-cli) is a command-line interface for browser automation designed for coding agents. It's more token-efficient than MCP — commands avoid loading large tool schemas and accessibility trees into the model context.
|
|
114
|
+
|
|
115
|
+
### Install
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
npm install -g @playwright/cli@latest
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Optionally install skills for richer agent integration:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
playwright-cli install --skills
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Usage
|
|
128
|
+
|
|
129
|
+
Point your coding agent at a task:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Test the "add todo" flow on https://demo.playwright.dev/todomvc using playwright-cli.
|
|
133
|
+
Take screenshots for all successful and failing scenarios.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Or run commands directly:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
playwright-cli open https://demo.playwright.dev/todomvc/ --headed
|
|
140
|
+
playwright-cli type "Buy groceries"
|
|
141
|
+
playwright-cli press Enter
|
|
142
|
+
playwright-cli screenshot
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Session monitoring
|
|
146
|
+
|
|
147
|
+
Use `playwright-cli show` to open a visual dashboard with live screencast previews of all running browser sessions. Click any session to zoom in and take remote control.
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
playwright-cli show
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
<!-- TODO: screenshot of playwright-cli show dashboard -->
|
|
154
|
+
|
|
155
|
+
[Full CLI documentation](https://playwright.dev/agent-cli/introduction) | [GitHub](https://github.com/microsoft/playwright-cli)
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Playwright MCP
|
|
160
|
+
|
|
161
|
+
The [Playwright MCP server](https://github.com/microsoft/playwright-mcp) gives AI agents full browser control through the [Model Context Protocol](https://modelcontextprotocol.io). Agents interact with pages using structured accessibility snapshots — no vision models or screenshots required.
|
|
162
|
+
|
|
163
|
+
### Setup
|
|
164
|
+
|
|
165
|
+
Add to your MCP client (VS Code, Cursor, Claude Desktop, Windsurf, etc.):
|
|
166
|
+
|
|
167
|
+
```json
|
|
168
|
+
{
|
|
169
|
+
"mcpServers": {
|
|
170
|
+
"playwright": {
|
|
171
|
+
"command": "npx",
|
|
172
|
+
"args": ["@playwright/mcp@latest"]
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**One-click install for VS Code:**
|
|
179
|
+
|
|
180
|
+
[<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20MCP%20Server&color=0098FF" alt="Install in VS Code" />](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522playwright%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522%2540playwright%252Fmcp%2540latest%2522%255D%257D)
|
|
181
|
+
|
|
182
|
+
**For Claude Code:**
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
claude mcp add playwright npx @playwright/mcp@latest
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### How it works
|
|
189
|
+
|
|
190
|
+
Ask your AI assistant to interact with any web page:
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
Navigate to https://demo.playwright.dev/todomvc and add a few todo items.
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
The agent sees the page as a structured accessibility tree:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
- heading "todos" [level=1]
|
|
200
|
+
- textbox "What needs to be done?" [ref=e5]
|
|
201
|
+
- listitem:
|
|
202
|
+
- checkbox "Toggle Todo" [ref=e10]
|
|
203
|
+
- text: "Buy groceries"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
It uses element refs like `e5` and `e10` to click, type, and interact — deterministically and without visual ambiguity. Tools cover navigation, form filling, screenshots, network mocking, storage management, and more.
|
|
207
|
+
|
|
208
|
+
[Full MCP documentation](https://playwright.dev/mcp/introduction) | [GitHub](https://github.com/microsoft/playwright-mcp)
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Playwright Library
|
|
213
|
+
|
|
214
|
+
Use `playwright` as a library for browser automation scripts — web scraping, PDF generation, screenshot capture, and any workflow that needs programmatic browser control without a test runner.
|
|
215
|
+
|
|
216
|
+
### Install
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
npm i playwright
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Examples
|
|
223
|
+
|
|
224
|
+
**Take a screenshot:**
|
|
225
|
+
|
|
226
|
+
```TypeScript
|
|
227
|
+
import { chromium } from 'playwright';
|
|
228
|
+
|
|
229
|
+
const browser = await chromium.launch();
|
|
230
|
+
const page = await browser.newPage();
|
|
231
|
+
await page.goto('https://playwright.dev/');
|
|
232
|
+
await page.screenshot({ path: 'screenshot.png' });
|
|
233
|
+
await browser.close();
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
**Generate a PDF:**
|
|
237
|
+
|
|
238
|
+
```TypeScript
|
|
239
|
+
import { chromium } from 'playwright';
|
|
240
|
+
|
|
241
|
+
const browser = await chromium.launch();
|
|
242
|
+
const page = await browser.newPage();
|
|
243
|
+
await page.goto('https://playwright.dev/');
|
|
244
|
+
await page.pdf({ path: 'page.pdf', format: 'A4' });
|
|
245
|
+
await browser.close();
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Emulate a mobile device:**
|
|
249
|
+
|
|
250
|
+
```TypeScript
|
|
251
|
+
import { chromium, devices } from 'playwright';
|
|
252
|
+
|
|
253
|
+
const browser = await chromium.launch();
|
|
254
|
+
const context = await browser.newContext(devices['iPhone 15']);
|
|
255
|
+
const page = await context.newPage();
|
|
256
|
+
await page.goto('https://playwright.dev/');
|
|
257
|
+
await page.screenshot({ path: 'mobile.png' });
|
|
258
|
+
await browser.close();
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Intercept network requests:**
|
|
262
|
+
|
|
263
|
+
```TypeScript
|
|
264
|
+
import { chromium } from 'playwright';
|
|
265
|
+
|
|
266
|
+
const browser = await chromium.launch();
|
|
267
|
+
const page = await browser.newPage();
|
|
268
|
+
await page.route('**/*.{png,jpg,jpeg}', route => route.abort());
|
|
269
|
+
await page.goto('https://playwright.dev/');
|
|
270
|
+
await browser.close();
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
[Library documentation](https://playwright.dev/docs/library) | [API reference](https://playwright.dev/docs/api/class-playwright)
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## VS Code Extension
|
|
278
|
+
|
|
279
|
+
The [Playwright VS Code extension](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright) brings test running, debugging, and code generation directly into your editor.
|
|
280
|
+
|
|
281
|
+
<!-- TODO: hero screenshot of VS Code with Playwright sidebar -->
|
|
282
|
+
|
|
283
|
+
**Run and debug tests** from the editor with a single click. Set breakpoints, inspect variables, and step through test execution with a live browser view.
|
|
284
|
+
|
|
285
|
+
**Generate tests with CodeGen.** Click "Record new" to open a browser — navigate and interact with your app while Playwright writes the test code for you.
|
|
286
|
+
|
|
287
|
+
**Pick locators.** Hover over any element in the browser to see the best available locator, then click to copy it to your clipboard.
|
|
288
|
+
|
|
289
|
+
**Trace Viewer integration.** Enable "Show Trace Viewer" in the sidebar to get a full execution trace after each test run — DOM snapshots, network requests, console logs, and screenshots at every step.
|
|
290
|
+
|
|
291
|
+
[Install the extension](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright) | [VS Code guide](https://playwright.dev/docs/getting-started-vscode)
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Cross-Browser Support
|
|
296
|
+
|
|
297
|
+
| | Linux | macOS | Windows |
|
|
298
|
+
| :--- | :---: | :---: | :---: |
|
|
299
|
+
| Chromium<sup>1</sup> <!-- GEN:chromium-version -->151.0.7922.10<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
|
|
300
|
+
| WebKit <!-- GEN:webkit-version -->26.5<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
|
|
301
|
+
| Firefox <!-- GEN:firefox-version -->152.0.4<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
|
|
302
|
+
|
|
303
|
+
Headless and headed execution on all platforms. <sup>1</sup> Uses [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing) by default.
|
|
304
|
+
|
|
305
|
+
## Other Languages
|
|
306
|
+
|
|
307
|
+
Playwright is also available for [Python](https://playwright.dev/python/docs/intro), [.NET](https://playwright.dev/dotnet/docs/intro), and [Java](https://playwright.dev/java/docs/intro).
|
|
308
|
+
|
|
309
|
+
## Resources
|
|
310
|
+
|
|
311
|
+
* [Documentation](https://playwright.dev)
|
|
312
|
+
* [API reference](https://playwright.dev/docs/api/class-playwright)
|
|
313
|
+
* [MCP server](https://github.com/microsoft/playwright-mcp)
|
|
314
|
+
* [CLI for coding agents](https://github.com/microsoft/playwright-cli)
|
|
315
|
+
* [VS Code extension](https://github.com/microsoft/playwright-vscode)
|
|
316
|
+
* [Contribution guide](CONTRIBUTING.md)
|
|
317
|
+
* [Changelog](https://github.com/microsoft/playwright/releases)
|
|
318
|
+
* [Discord](https://aka.ms/playwright/discord)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
microsoft/playwright
|
|
2
|
+
|
|
3
|
+
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
|
|
4
|
+
|
|
5
|
+
This package bundles third-party software inside individual files under
|
|
6
|
+
`lib/`. Each bundled output has a sidecar `<bundle>.js.LICENSE` file next
|
|
7
|
+
to it listing every npm package whose source was inlined into that
|
|
8
|
+
bundle, together with the full license text for each.
|
|
9
|
+
|
|
10
|
+
For example:
|
|
11
|
+
- lib/common/index.js.LICENSE
|
|
12
|
+
- lib/matchers/expect.js.LICENSE
|
|
13
|
+
|
|
14
|
+
This project incorporates components from the projects listed below. The original copyright notices and the licenses under which Microsoft received such components are set forth below. Microsoft reserves all rights not expressly granted herein, whether by implication, estoppel or otherwise.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Microsoft Corporation.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const { program } = require('./lib/program');
|
|
19
|
+
program.parse(process.argv);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export * from 'playwright-core';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
module.exports = require('playwright-core');
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export * from 'playwright-core';
|
|
17
|
+
import playwright from 'playwright-core';
|
|
18
|
+
export default playwright;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function jsx(type, props, key) {
|
|
18
|
+
return {
|
|
19
|
+
__pw_type: 'jsx',
|
|
20
|
+
type,
|
|
21
|
+
props,
|
|
22
|
+
key,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function jsxs(type, props, key) {
|
|
27
|
+
return {
|
|
28
|
+
__pw_type: 'jsx',
|
|
29
|
+
type,
|
|
30
|
+
props,
|
|
31
|
+
key,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// this is used in <></> notation
|
|
36
|
+
const Fragment = { __pw_jsx_fragment: true };
|
|
37
|
+
|
|
38
|
+
module.exports = {
|
|
39
|
+
Fragment,
|
|
40
|
+
jsx,
|
|
41
|
+
jsxs,
|
|
42
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Microsoft Corporation.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import jsxRuntime from './jsx-runtime.js';
|
|
18
|
+
|
|
19
|
+
export const jsx = jsxRuntime.jsx;
|
|
20
|
+
export const jsxs = jsxRuntime.jsxs;
|
|
21
|
+
export const Fragment = jsxRuntime.Fragment;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var agentParser_exports = {};
|
|
30
|
+
__export(agentParser_exports, {
|
|
31
|
+
parseAgentSpec: () => parseAgentSpec
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(agentParser_exports);
|
|
34
|
+
var import_fs = __toESM(require("fs"));
|
|
35
|
+
const yaml = require("playwright-core/lib/utilsBundle").yaml;
|
|
36
|
+
async function parseAgentSpec(filePath) {
|
|
37
|
+
const source = await import_fs.default.promises.readFile(filePath, "utf-8");
|
|
38
|
+
const { header, content } = extractYamlAndContent(source);
|
|
39
|
+
const { instructions, examples } = extractInstructionsAndExamples(content);
|
|
40
|
+
return {
|
|
41
|
+
...header,
|
|
42
|
+
instructions,
|
|
43
|
+
examples
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function extractYamlAndContent(markdown) {
|
|
47
|
+
const lines = markdown.split("\n");
|
|
48
|
+
if (lines[0] !== "---")
|
|
49
|
+
throw new Error("Markdown file must start with YAML front matter (---)");
|
|
50
|
+
let yamlEndIndex = -1;
|
|
51
|
+
for (let i = 1; i < lines.length; i++) {
|
|
52
|
+
if (lines[i] === "---") {
|
|
53
|
+
yamlEndIndex = i;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (yamlEndIndex === -1)
|
|
58
|
+
throw new Error("YAML front matter must be closed with ---");
|
|
59
|
+
const yamlLines = lines.slice(1, yamlEndIndex);
|
|
60
|
+
const yamlRaw = yamlLines.join("\n");
|
|
61
|
+
const contentLines = lines.slice(yamlEndIndex + 1);
|
|
62
|
+
const content = contentLines.join("\n");
|
|
63
|
+
let header;
|
|
64
|
+
try {
|
|
65
|
+
header = yaml.parse(yamlRaw);
|
|
66
|
+
} catch (error) {
|
|
67
|
+
throw new Error(`Failed to parse YAML header: ${error.message}`);
|
|
68
|
+
}
|
|
69
|
+
if (!header.name)
|
|
70
|
+
throw new Error('YAML header must contain a "name" field');
|
|
71
|
+
if (!header.description)
|
|
72
|
+
throw new Error('YAML header must contain a "description" field');
|
|
73
|
+
return { header, content };
|
|
74
|
+
}
|
|
75
|
+
function extractInstructionsAndExamples(content) {
|
|
76
|
+
const examples = [];
|
|
77
|
+
const instructions = content.split("<example>")[0].trim();
|
|
78
|
+
const exampleRegex = /<example>([\s\S]*?)<\/example>/g;
|
|
79
|
+
let match;
|
|
80
|
+
while ((match = exampleRegex.exec(content)) !== null) {
|
|
81
|
+
const example = match[1].trim();
|
|
82
|
+
examples.push(example.replace(/[\n]/g, " ").replace(/ +/g, " "));
|
|
83
|
+
}
|
|
84
|
+
return { instructions, examples };
|
|
85
|
+
}
|
|
86
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
87
|
+
0 && (module.exports = {
|
|
88
|
+
parseAgentSpec
|
|
89
|
+
});
|
package/node_modules/@playwright/mcp/node_modules/playwright/lib/agents/copilot-setup-steps.yml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: "Copilot Setup Steps"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
paths:
|
|
7
|
+
- .github/workflows/copilot-setup-steps.yml
|
|
8
|
+
pull_request:
|
|
9
|
+
paths:
|
|
10
|
+
- .github/workflows/copilot-setup-steps.yml
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
copilot-setup-steps:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v6
|
|
21
|
+
|
|
22
|
+
- uses: actions/setup-node@v6
|
|
23
|
+
with:
|
|
24
|
+
node-version: lts/*
|
|
25
|
+
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: npm ci
|
|
28
|
+
|
|
29
|
+
- name: Install Playwright Browsers
|
|
30
|
+
run: npx playwright install --with-deps
|
|
31
|
+
|
|
32
|
+
# Customize this step as needed
|
|
33
|
+
- name: Build application
|
|
34
|
+
run: npx run build
|