craftdriver 1.0.3 → 1.0.4
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/CHANGELOG.md +12 -3
- package/README.md +80 -160
- package/dist/lib/driver.d.ts.map +1 -1
- package/dist/lib/driver.js +2 -0
- package/dist/lib/driver.js.map +1 -1
- package/dist/lib/driverManager.d.ts.map +1 -1
- package/dist/lib/driverManager.js +67 -24
- package/dist/lib/driverManager.js.map +1 -1
- package/dist/lib/http.d.ts +1 -1
- package/dist/lib/http.d.ts.map +1 -1
- package/dist/lib/http.js +35 -7
- package/dist/lib/http.js.map +1 -1
- package/dist/lib/timing.d.ts +13 -0
- package/dist/lib/timing.d.ts.map +1 -1
- package/dist/lib/timing.js +13 -0
- package/dist/lib/timing.js.map +1 -1
- package/dist/lib/types.d.ts +2 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/docs/agents.md +92 -0
- package/docs/api-reference.md +108 -46
- package/docs/browser-api.md +1 -1
- package/docs/browser-context.md +4 -7
- package/docs/browser-logs.md +158 -0
- package/docs/cli.md +26 -26
- package/docs/element-api.md +37 -6
- package/docs/emulation.md +6 -2
- package/docs/index.md +64 -0
- package/docs/keyboard-mouse.md +28 -10
- package/docs/mobile-emulation.md +5 -2
- package/docs/network.md +203 -0
- package/docs/public/craftdriver-mark.svg +15 -0
- package/docs/public/social-card.svg +27 -0
- package/docs/recipes/accessibility-gate.md +53 -0
- package/docs/recipes/console-error-gate.md +57 -0
- package/docs/recipes/file-upload-download.md +58 -0
- package/docs/recipes/login-once-reuse-session.md +73 -0
- package/docs/recipes/mobile-flow-with-network-and-logs.md +57 -0
- package/docs/recipes/mock-api-and-assert-network.md +60 -0
- package/docs/recipes/multi-user-contexts.md +58 -0
- package/docs/recipes/trace-failing-test.md +64 -0
- package/docs/recipes/virtual-clock-time-sensitive-ui.md +60 -0
- package/docs/recipes/vitest-browser-lifecycle.md +56 -0
- package/docs/recipes.md +33 -0
- package/docs/selectors.md +22 -1
- package/docs/session-management.md +18 -1
- package/docs/standards.md +40 -0
- package/docs/why-craftdriver.md +28 -0
- package/docs/zero-config-drivers.md +52 -0
- package/package.json +19 -5
- package/docs/bidi-features.md +0 -470
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [1.0.4](https://github.com/dtopuzov/craftdriver/compare/v1.0.3...v1.0.4) (2026-07-09)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* bound session creation with a request timeout ([5b67d24](https://github.com/dtopuzov/craftdriver/commit/5b67d2496293ad174540c33bd827b2b262fc0d5a))
|
|
7
|
+
* isolate driver downloads to per-call temp dirs ([11e38ad](https://github.com/dtopuzov/craftdriver/commit/11e38adfb4e65a6b6787cb35f89c2570ed7cd339))
|
|
8
|
+
|
|
1
9
|
## [1.0.3](https://github.com/dtopuzov/craftdriver/compare/v1.0.2...v1.0.3) (2026-07-07)
|
|
2
10
|
|
|
3
11
|
|
|
@@ -124,6 +132,7 @@ Fixes: https://github.com/dtopuzov/craftdriver/issues/20
|
|
|
124
132
|
|
|
125
133
|
## Unreleased
|
|
126
134
|
|
|
135
|
+
- docs: refresh the README as a product front door, add a VitePress documentation site with GitHub Pages deployment, add proof pages/launch kit/social card, and add contribution files (issue forms, PR template, code of conduct).
|
|
127
136
|
- **breaking** (pre-1.0): BiDi console/error log capture is lazy by default. Messages emitted before the first `browser.logs` / `onConsole` / `onError` / `waitForConsole` touch are no longer captured unless `Browser.launch({ captureLogs: true })` is used to arm logging at launch.
|
|
128
137
|
- feat(launch): add `Browser.launch({ args })` for opt-in browser flags, forwarded to `goog:chromeOptions.args` for Chrome/Chromium and `moz:firefoxOptions.args` for Firefox. Craftdriver still sets no performance flags by default.
|
|
129
138
|
- perf(bidi): reduce the issue #20 BiDi/Classic per-command regression by routing common `waitUntil: 'load'` navigations through Classic when safe, batching BiDi connect-time work into one parallel `getTree` + `session.subscribe` batch, removing three redundant context-event subscriptions, making log capture lazy, and pooling Classic HTTP connections with keep-alive. New `npm run bench` harnesses cover the light flow, heavier registration-shaped flow, launch critical path, and optional real-app registration flow.
|
|
@@ -134,8 +143,8 @@ Fixes: https://github.com/dtopuzov/craftdriver/issues/20
|
|
|
134
143
|
- fix(driver-manager): stale cached chromedriver auto-resolution now self-heals after a Chrome major-version update. If session creation reports the classic "ChromeDriver only supports Chrome version X" mismatch and the running driver came from the auto-resolution cache, craftdriver clears that metadata entry, stops the stale service, and retries launch once so users do not wait up to the 24h TTL.
|
|
135
144
|
- refactor(timing): centralize poll intervals, default timeouts, fixed delays, and retry policy in `src/lib/timing.ts`; route `expect(...)` matchers through one shared polling helper; and DRY the driver-resolution TTL metadata helpers.
|
|
136
145
|
- docs: refresh BiDi/protocol guidance, lazy-log docs, driver-resolution performance guidance, route-handler examples, dialog/emulation transport notes, mouse signatures, storage-origin wording, and contributor setup now that drivers auto-download.
|
|
137
|
-
- chore(deps): pin the vendored npm used by `@semantic-release/npm` to a version that bundles patched `undici`, clearing the dev/release-tooling
|
|
138
|
-
- fix
|
|
146
|
+
- chore(deps): pin the vendored npm used by `@semantic-release/npm` to a version that bundles patched `undici`, clearing the dev/release-tooling finding without changing craftdriver runtime dependencies.
|
|
147
|
+
- fix: clamp user-supplied `timeout` and `idleDuration` values passed to `setTimeout` in `waitForNetworkIdle` (network.ts) and `waitForLoadState` (browser.ts) to prevent resource exhaustion from unbounded timer durations. The `ms()` helper in `dispatcher.ts` (the socket→number boundary for the CLI daemon) now also caps at 300,000 ms so the sanitization happens at the untrusted-input boundary rather than deep in the call chain. Caps: 300,000 ms for timeouts, 60,000 ms for idle durations.
|
|
139
148
|
- fix(tests): `driver-manager.test.ts` integration test was silently short-circuiting on systems where `chromedriver` is already on `PATH` (ubuntu-latest CI runners, nvm-managed Node envs). The resolution chain hit the PATH probe at step 5 before ever reaching the auto-download step, so nothing was written to the cache directory and the cache assertions failed. Fix: `beforeAll` now filters chromedriver-containing directories out of `PATH` to force the download path; `PATH` is restored in `afterAll`.
|
|
140
149
|
|
|
141
150
|
- fix(browser-context): `page.context()` now returns `browser.defaultContext` for pages opened via `browser.openPage()` / `browser.waitForPage()` / `browser.pages()` / `browser.activePage()` instead of `undefined`. Previously these pages lived in the default user context at the BiDi layer but had no owner wired up, which meant `page.navigateTo('/foo')` silently ignored the default context's `baseURL`, and the model leaked. New regression test in [tests/browser-context-hooks.test.ts](tests/browser-context-hooks.test.ts).
|
|
@@ -183,7 +192,7 @@ Fixes: https://github.com/dtopuzov/craftdriver/issues/20
|
|
|
183
192
|
- **breaking** (pre-1.0): `KeyboardController` / `MouseController` renamed to `Keyboard` / `Mouse` for Playwright parity. Re-exported from `src/index.ts`.
|
|
184
193
|
- feat: `By.text(text, { exact: false })` is now sugar for `By.partialText(text)`. `getByText` and `By.text` share one vocabulary.
|
|
185
194
|
- docs: dedicated [docs/dialogs.md](docs/dialogs.md); browser-api dialogs section trimmed to a callout. Attached-vs-visible gloss added to the waiting section. `By.role({ includeHidden })` documented in [docs/selectors.md](docs/selectors.md). `browser.actions()` gets a runnable shift-drag example in [docs/browser-api.md](docs/browser-api.md).
|
|
186
|
-
- docs:
|
|
195
|
+
- docs: feature-availability notes added to the browser capability docs, timeout-defaults table added in [docs/browser-api.md](docs/browser-api.md), mobile-emulation Chrome-only callout promoted to the top of [docs/mobile-emulation.md](docs/mobile-emulation.md), cleanup / failure-recovery guidance added to [docs/browser-api.md](docs/browser-api.md).
|
|
187
196
|
- feat: re-export `Keyboard` and `Mouse` (was `KeyboardController` / `MouseController`) from [src/index.ts](src/index.ts).
|
|
188
197
|
- **breaking** (pre-1.0): remove deprecated aliases `Browser.waitForNewContext()` and `LogMonitor.getConsoleLogs()`. One API per concept; no aliases pre-1.0.
|
|
189
198
|
- **breaking** (pre-1.0): rename `By.nameAttr` → `By.name` and `By.tag` → `By.tagName` for parity with Selenium's canonical `By` API.
|
package/README.md
CHANGED
|
@@ -1,208 +1,128 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CraftDriver 🍺
|
|
2
2
|
|
|
3
3
|
[](https://github.com/dtopuzov/craftdriver/actions/workflows/ci.yml)
|
|
4
4
|
[](https://www.npmjs.com/package/craftdriver)
|
|
5
|
-
[](https://www.npmjs.com/package/craftdriver)
|
|
6
|
+
[](https://dtopuzov.github.io/craftdriver/)
|
|
7
|
+
[](https://nodejs.org/)
|
|
8
|
+
[](./LICENSE)
|
|
6
9
|
|
|
7
|
-
Crafted Node.js browser automation built
|
|
10
|
+
Crafted Node.js browser automation built on W3C WebDriver and BiDi.
|
|
8
11
|
|
|
9
|
-
**Playwright
|
|
12
|
+
**Playwright-style ergonomics. WebDriver standards. AI friendly.**
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
CraftDriver is for writing boringly reliable automation against real browsers, with code that reads nicely.
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
## Why CraftDriver?
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
- 🍺 **Focused Node.js API** - browser automation without a giant framework around it.
|
|
19
|
+
- 🧭 **Real browsers** - drives installed Chrome, Chromium, and Firefox instead of patched browser engine builds.
|
|
20
|
+
- 🌐 **Standards that age well** - W3C WebDriver standards stay stable while browser-private protocols change.
|
|
21
|
+
- 🚦 **Readable, auto-waited flows** - role, label, text, test id, CSS, XPath, click, fill, and expect.
|
|
22
|
+
- 📡 **Network control** - mock, block, intercept, and wait for browser requests and responses.
|
|
23
|
+
- 🔐 **Reusable sessions** - save cookies and localStorage, then launch already signed in.
|
|
24
|
+
- ⏱️ **Virtual clock** - freeze or fast-forward `Date`, timers, and time-sensitive UI.
|
|
25
|
+
- ♿ **Accessibility audits** - run axe-core checks on pages, elements, and locators.
|
|
26
|
+
- 🧾 **Trace evidence** - capture actions, console output, errors, network events, and screenshots.
|
|
27
|
+
- 🤖 **Agent-friendly** - CLI, MCP, and assistant rules when coding agents need the browser.
|
|
16
28
|
|
|
17
|
-
##
|
|
29
|
+
## Choose Your Path
|
|
30
|
+
|
|
31
|
+
| You want to... | Start here |
|
|
32
|
+
| --------------------------------- | ------------------------------------------------------------------------- |
|
|
33
|
+
| Write browser automation | [Getting started](https://dtopuzov.github.io/craftdriver/getting-started) |
|
|
34
|
+
| Give an AI coding agent a browser | [AI agent guide](https://dtopuzov.github.io/craftdriver/agents) |
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
18
37
|
|
|
19
38
|
```bash
|
|
20
39
|
npm install craftdriver --save-dev
|
|
21
40
|
```
|
|
22
41
|
|
|
23
|
-
That's it.
|
|
24
|
-
No drivers, no extra steps to install browsers.
|
|
25
|
-
|
|
26
|
-
Quick example:
|
|
27
|
-
|
|
28
42
|
```ts
|
|
29
43
|
import { Browser } from 'craftdriver';
|
|
30
44
|
|
|
31
45
|
const browser = await Browser.launch({ browserName: 'chrome' });
|
|
32
46
|
|
|
33
|
-
await browser.navigateTo('https://example.com');
|
|
34
|
-
await browser.
|
|
35
|
-
await browser.
|
|
36
|
-
await browser.
|
|
47
|
+
await browser.navigateTo('https://example.com/login');
|
|
48
|
+
await browser.getByLabel('Username').fill('alice');
|
|
49
|
+
await browser.getByLabel('Password').fill('hunter2');
|
|
50
|
+
await browser.getByRole('button', { name: 'Sign in' }).click();
|
|
37
51
|
await browser.expect('#result').toHaveText('Welcome alice');
|
|
38
52
|
|
|
39
53
|
await browser.quit();
|
|
40
54
|
```
|
|
41
55
|
|
|
42
|
-
|
|
56
|
+
No separate chromedriver or geckodriver setup for normal use. CraftDriver resolves and caches the right driver for your installed browser.
|
|
43
57
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
58
|
+
## AI Agent Bonus
|
|
59
|
+
|
|
60
|
+
If your coding agent can use a shell or MCP, CraftDriver can give it a real browser too. Same selectors, same behavior, same error codes as the library API.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npx craftdriver init agents
|
|
64
|
+
claude mcp add craftdriver -- npx -y craftdriver mcp
|
|
49
65
|
```
|
|
50
66
|
|
|
51
|
-
|
|
67
|
+
See the [AI agent guide](https://dtopuzov.github.io/craftdriver/agents) when you need the full setup.
|
|
68
|
+
|
|
69
|
+
## What It Can Do
|
|
52
70
|
|
|
53
71
|
```ts
|
|
54
|
-
|
|
72
|
+
// Mobile emulation
|
|
73
|
+
await Browser.launch({
|
|
74
|
+
browserName: 'chrome',
|
|
75
|
+
mobileEmulation: 'iPhone 14',
|
|
76
|
+
});
|
|
55
77
|
|
|
78
|
+
// Network mocking
|
|
56
79
|
await browser.network.mock('**/api/users', {
|
|
57
80
|
status: 200,
|
|
58
81
|
body: { users: [] },
|
|
59
82
|
});
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Session persistence:
|
|
63
83
|
|
|
64
|
-
|
|
84
|
+
// Save and reuse login state
|
|
65
85
|
await browser.saveState('./session.json');
|
|
66
86
|
|
|
67
|
-
|
|
68
|
-
const browser2 = await Browser.launch({
|
|
87
|
+
await Browser.launch({
|
|
69
88
|
browserName: 'chrome',
|
|
70
89
|
storageState: './session.json',
|
|
71
90
|
});
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
## AI Productivity Tooling
|
|
75
|
-
|
|
76
|
-
`craftdriver` ships three surfaces for AI agents (Copilot, Claude
|
|
77
|
-
Code, Cursor, Codex, Gemini CLI, …), in addition to the library:
|
|
78
|
-
|
|
79
|
-
If you want Craftdriver to work well with coding agents on day one, this is the stack: a shell-friendly CLI, an MCP server for tool-calling hosts, packaged skills, and `craftdriver init` to drop the right repo instructions into place.
|
|
80
|
-
|
|
81
|
-
- **CLI** (this section) — a `craftdriver` binary for shell-capable agents.
|
|
82
|
-
- **Skill pack** — ready-to-load rules at [skills/craftdriver/](./skills/craftdriver/),
|
|
83
|
-
shipped in the npm tarball.
|
|
84
|
-
- **MCP server** — stdio JSON-RPC for sandboxed hosts. See below.
|
|
85
|
-
- **`craftdriver init`** — drop per-project rules files for the popular
|
|
86
|
-
assistants (Copilot, Claude, Cursor, Gemini, Codex / AGENTS.md).
|
|
87
91
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
The `craftdriver` binary is for shell scripts, ad-hoc exploration, and
|
|
91
|
-
shell-capable AI agents. It wraps the same Browser API as the library,
|
|
92
|
-
with fail-fast defaults tuned for probing instead of stable test runs.
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
# terminal 1 — keep a long-lived browser around
|
|
96
|
-
npx craftdriver daemon start
|
|
97
|
-
|
|
98
|
-
# terminal 2 — drive it
|
|
99
|
-
npx craftdriver go http://127.0.0.1:8080/login.html
|
|
100
|
-
npx craftdriver fill '#username' alice
|
|
101
|
-
npx craftdriver fill '#password' hunter2
|
|
102
|
-
npx craftdriver click 'button[type=submit]'
|
|
103
|
-
npx craftdriver wait '#result' --state visible
|
|
104
|
-
npx craftdriver text '#result'
|
|
105
|
-
|
|
106
|
-
npx craftdriver daemon stop
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
State (page, cookies, storage) survives between calls — the CLI feels
|
|
110
|
-
like a REPL for the browser. For sandboxed environments that can't keep
|
|
111
|
-
a daemon, pipe a script through `--ephemeral` instead.
|
|
112
|
-
|
|
113
|
-
Selectors are CSS by default; switch with a `prefix=value` form
|
|
114
|
-
(`role=button[name=Submit]`, `text=Sign In`, `label=Email`,
|
|
115
|
-
`placeholder=...`, `testid=...`, `xpath=...`). Output is pretty on a
|
|
116
|
-
TTY and JSON when piped. Every error carries the same stable `code` and
|
|
117
|
-
`hint:` as the library. See [docs/cli.md](./docs/cli.md) for the full
|
|
118
|
-
command list and selector reference.
|
|
119
|
-
|
|
120
|
-
### Teach your AI assistant
|
|
121
|
-
|
|
122
|
-
`craftdriver init <flavor>` writes a short rules file into your project
|
|
123
|
-
so Copilot, Claude, Cursor, Codex, Gemini, OpenCode, Aider, …
|
|
124
|
-
pick up the right conventions on every turn (selector preference,
|
|
125
|
-
auto-waiting, error codes, CLI usage). Per-project, checked into git,
|
|
126
|
-
zero runtime cost.
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
npx craftdriver init copilot # .github/copilot-instructions.md
|
|
130
|
-
npx craftdriver init claude # CLAUDE.md
|
|
131
|
-
npx craftdriver init cursor # .cursor/rules/craftdriver.mdc
|
|
132
|
-
npx craftdriver init gemini # GEMINI.md
|
|
133
|
-
npx craftdriver init agents # AGENTS.md (Codex, OpenCode, Aider, Amp, Cursor)
|
|
134
|
-
npx craftdriver init all # every file above
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Use `--force` to overwrite existing files, `--dry-run` to preview.
|
|
138
|
-
|
|
139
|
-
### Skill pack
|
|
140
|
-
|
|
141
|
-
For agents that load skills explicitly (Claude Code's Skills system,
|
|
142
|
-
Copilot agent customization, custom orchestrators), the npm tarball
|
|
143
|
-
ships a tiered skill pack under [skills/craftdriver/](./skills/craftdriver/):
|
|
144
|
-
|
|
145
|
-
- [`SKILL.md`](./skills/craftdriver/SKILL.md) — always-on, ≤ 500 tokens.
|
|
146
|
-
Decision rules: selector preference order, error-code-first error
|
|
147
|
-
handling, the auto-wait contract, when to reach for CLI/MCP.
|
|
148
|
-
- [`cheatsheet.md`](./skills/craftdriver/cheatsheet.md) — command-by-command
|
|
149
|
-
reference for writing tests.
|
|
150
|
-
- [`patterns.md`](./skills/craftdriver/patterns.md) — worked recipes
|
|
151
|
-
(login, upload, network-wait, a11y, tracing, virtual clock).
|
|
152
|
-
- [`cli.md`](./skills/craftdriver/cli.md) — agent-facing CLI reference.
|
|
153
|
-
|
|
154
|
-
Point your agent at `node_modules/craftdriver/skills/craftdriver/SKILL.md`
|
|
155
|
-
(or copy the file into your project) and the rest is loaded on demand.
|
|
156
|
-
|
|
157
|
-
### MCP server
|
|
158
|
-
|
|
159
|
-
For agents that talk [Model Context Protocol](https://modelcontextprotocol.io)
|
|
160
|
-
(Claude Desktop / Code, Cursor, Windsurf, Zed, Goose, Gemini CLI, …),
|
|
161
|
-
`craftdriver mcp` exposes the same dispatcher as a stdio JSON-RPC
|
|
162
|
-
server with 14 schema-typed tools. Mutating tools return a **compact
|
|
163
|
-
a11y snapshot diffed from the previous turn** — the agent sees what
|
|
164
|
-
changed on the page without a follow-up read.
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
# Claude Code
|
|
168
|
-
claude mcp add craftdriver -- npx -y craftdriver mcp
|
|
92
|
+
// Built-in accessibility checks via axe-core
|
|
93
|
+
await browser.a11y.check();
|
|
169
94
|
```
|
|
170
95
|
|
|
171
|
-
```jsonc
|
|
172
|
-
// Cursor / Windsurf / Zed
|
|
173
|
-
{
|
|
174
|
-
"mcpServers": {
|
|
175
|
-
"craftdriver": { "command": "npx", "args": ["-y", "craftdriver", "mcp"] }
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
See [docs/mcp.md](./docs/mcp.md) for the full tool list, install
|
|
181
|
-
snippets for every host, and the snapshot format.
|
|
182
|
-
|
|
183
96
|
## Feature Guide
|
|
184
97
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
|
188
|
-
|
|
|
189
|
-
|
|
|
190
|
-
|
|
|
191
|
-
|
|
|
192
|
-
|
|
|
193
|
-
|
|
|
194
|
-
|
|
|
195
|
-
|
|
|
196
|
-
|
|
|
197
|
-
|
|
|
198
|
-
| Screenshots
|
|
199
|
-
| Mobile and emulation | Device presets, viewport
|
|
200
|
-
| Browser contexts
|
|
201
|
-
|
|
|
202
|
-
|
|
|
203
|
-
|
|
|
204
|
-
|
|
|
205
|
-
|
|
98
|
+
| Area | What you get | Learn more |
|
|
99
|
+
| -------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
100
|
+
| Getting started | Install, launch a browser, write the first test | [Getting started](https://dtopuzov.github.io/craftdriver/getting-started) |
|
|
101
|
+
| Driver management | Zero-config driver resolution, cache behavior, env vars, offline mode | [Driver configuration](https://dtopuzov.github.io/craftdriver/driver-configuration) |
|
|
102
|
+
| Browser control | Navigation, tabs, popups, iframes, content helpers, evaluate, init scripts | [Browser API](https://dtopuzov.github.io/craftdriver/browser-api) |
|
|
103
|
+
| Locators | CSS, XPath, text, role, label, test id, and composable `locator()` chains | [Selectors](https://dtopuzov.github.io/craftdriver/selectors) |
|
|
104
|
+
| Element actions | Click, fill, upload, inspect, and interact through element handles | [Element API](https://dtopuzov.github.io/craftdriver/element-api) |
|
|
105
|
+
| Assertions | Built-in `expect(...)`, retries, visibility, text, attributes, and timing behavior | [Assertions](https://dtopuzov.github.io/craftdriver/assertions) |
|
|
106
|
+
| Input | Low-level key presses, mouse movement, hover, drag, and pointer input | [Keyboard and mouse](https://dtopuzov.github.io/craftdriver/keyboard-mouse) |
|
|
107
|
+
| Dialogs | `alert`, `confirm`, `prompt`, and `beforeunload` handling | [Dialogs](https://dtopuzov.github.io/craftdriver/dialogs) |
|
|
108
|
+
| Sessions | Cookies, localStorage, save/load state, persistent login flows | [Session management](https://dtopuzov.github.io/craftdriver/session-management) |
|
|
109
|
+
| Network mocking | Mock, block, intercept, and wait for browser requests and responses | [Network mocking](https://dtopuzov.github.io/craftdriver/network) |
|
|
110
|
+
| Console and errors | Capture console output and fail tests on JavaScript errors | [Console logs](https://dtopuzov.github.io/craftdriver/browser-logs) |
|
|
111
|
+
| Screenshots | Page and element screenshots for tests and debugging | [Screenshots](https://dtopuzov.github.io/craftdriver/screenshots) |
|
|
112
|
+
| Mobile and emulation | Device presets, viewport, locale, timezone, offline, reduced motion | [Mobile emulation](https://dtopuzov.github.io/craftdriver/mobile-emulation), [Emulation](https://dtopuzov.github.io/craftdriver/emulation) |
|
|
113
|
+
| Browser contexts | Isolated profiles for multi-user and multi-session testing | [Browser contexts](https://dtopuzov.github.io/craftdriver/browser-context) |
|
|
114
|
+
| Tracing | Crash-resilient NDJSON traces and evidence screenshots | [Tracing](https://dtopuzov.github.io/craftdriver/tracing) |
|
|
115
|
+
| Accessibility | Built-in axe-core audits for page, element, and locator scopes | [Accessibility](https://dtopuzov.github.io/craftdriver/accessibility) |
|
|
116
|
+
| Virtual time | Fake `Date`, `setTimeout`, and `setInterval` for time-sensitive flows | [Virtual clock](https://dtopuzov.github.io/craftdriver/clock) |
|
|
117
|
+
| AI agents | CLI, MCP server, assistant bootstrap, packaged skill files | [AI agent guide](https://dtopuzov.github.io/craftdriver/agents) |
|
|
118
|
+
|
|
119
|
+
## Links
|
|
120
|
+
|
|
121
|
+
- [Documentation site](https://dtopuzov.github.io/craftdriver/)
|
|
122
|
+
- [API reference](https://dtopuzov.github.io/craftdriver/api-reference)
|
|
123
|
+
- [Recipes](https://dtopuzov.github.io/craftdriver/recipes)
|
|
124
|
+
- [Changelog](./CHANGELOG.md)
|
|
125
|
+
- [Contributing guide](./CONTRIBUTING.md)
|
|
206
126
|
|
|
207
127
|
## Contributing
|
|
208
128
|
|
package/dist/lib/driver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/lib/driver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAmB,iBAAiB,EAAmB,MAAM,YAAY,CAAC;AACpG,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAuC,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/lib/driver.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/driver.js
CHANGED
|
@@ -2,6 +2,7 @@ import { HttpClient } from './http.js';
|
|
|
2
2
|
import { WebElement, W3C_ELEMENT_KEY, LEGACY_ELEMENT_KEY } from './webelement.js';
|
|
3
3
|
import { WebDriverWait } from './wait.js';
|
|
4
4
|
import { CraftdriverError, ErrorCode } from './errors.js';
|
|
5
|
+
import { SESSION_CREATE_TIMEOUT_MS } from './timing.js';
|
|
5
6
|
function isMoveTargetOutOfBounds(err) {
|
|
6
7
|
if (!CraftdriverError.is(err, ErrorCode.DRIVER_ERROR))
|
|
7
8
|
return false;
|
|
@@ -24,6 +25,7 @@ export class Driver {
|
|
|
24
25
|
method: 'POST',
|
|
25
26
|
path: '/session',
|
|
26
27
|
body: { capabilities: { alwaysMatch: caps } },
|
|
28
|
+
timeoutMs: SESSION_CREATE_TIMEOUT_MS,
|
|
27
29
|
});
|
|
28
30
|
}
|
|
29
31
|
catch (err) {
|
package/dist/lib/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/lib/driver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/lib/driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driverManager.d.ts","sourceRoot":"","sources":["../../src/lib/driverManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAoEH;;;;GAIG;AACH,wBAAgB,yCAAyC,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAuBtF;
|
|
1
|
+
{"version":3,"file":"driverManager.d.ts","sourceRoot":"","sources":["../../src/lib/driverManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAoEH;;;;GAIG;AACH,wBAAgB,yCAAyC,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAuBtF;AAiXD,4EAA4E;AAC5E,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoElB;AAED,2EAA2E;AAC3E,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DlB"}
|
|
@@ -297,23 +297,43 @@ async function downloadChromedriver(browserVersion) {
|
|
|
297
297
|
}
|
|
298
298
|
const chosen = candidates[0];
|
|
299
299
|
const entry = chosen.downloads.chromedriver.find((d) => d.platform === platform);
|
|
300
|
-
const tmpZip = path.join(cacheDir(), `_chromedriver-${chosen.version}.zip`);
|
|
301
300
|
process.stderr.write(`[craftdriver] Downloading chromedriver ${chosen.version}…\n`);
|
|
302
301
|
fs.mkdirSync(cacheDir(), { recursive: true });
|
|
303
|
-
|
|
304
|
-
//
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
302
|
+
// Download and extract inside a per-call unique working directory. Several
|
|
303
|
+
// launches can resolve the same missing version at once (parallel test
|
|
304
|
+
// workers, each its own process, share the one on-disk cache); a fixed temp
|
|
305
|
+
// path let them clobber each other's zip mid-download or delete it
|
|
306
|
+
// mid-extract ("unzip: cannot find or open …" / "invalid compressed data").
|
|
307
|
+
// mkdtempSync hands each caller a distinct directory — safe across processes —
|
|
308
|
+
// and the finally removes it whatever happens.
|
|
309
|
+
const workDir = fs.mkdtempSync(path.join(cacheDir(), '_dl-chromedriver-'));
|
|
310
|
+
try {
|
|
311
|
+
const tmpZip = path.join(workDir, 'chromedriver.zip');
|
|
312
|
+
await httpsDownload(entry.url, tmpZip);
|
|
313
|
+
// CfT zip layout: chromedriver-<platform>/chromedriver[.exe]
|
|
314
|
+
const extractDir = path.join(workDir, 'extract');
|
|
315
|
+
extractZip(tmpZip, extractDir);
|
|
316
|
+
const innerBin = path.join(extractDir, `chromedriver-${platform}`, binName);
|
|
317
|
+
if (!fs.existsSync(innerBin)) {
|
|
318
|
+
throw new Error(`Unexpected zip layout: could not find ${innerBin} after extraction.`);
|
|
319
|
+
}
|
|
320
|
+
fs.mkdirSync(driverDir, { recursive: true });
|
|
321
|
+
// A concurrent resolver may have placed the binary first. On POSIX rename
|
|
322
|
+
// atomically replaces it; on Windows rename onto an existing file throws, so
|
|
323
|
+
// treat an already-present destination as success.
|
|
324
|
+
try {
|
|
325
|
+
fs.renameSync(innerBin, driverBin);
|
|
326
|
+
}
|
|
327
|
+
catch (err) {
|
|
328
|
+
if (!fs.existsSync(driverBin))
|
|
329
|
+
throw err;
|
|
330
|
+
}
|
|
331
|
+
if (os.platform() !== 'win32')
|
|
332
|
+
fs.chmodSync(driverBin, 0o755);
|
|
333
|
+
}
|
|
334
|
+
finally {
|
|
335
|
+
fs.rmSync(workDir, { recursive: true, force: true });
|
|
311
336
|
}
|
|
312
|
-
fs.mkdirSync(driverDir, { recursive: true });
|
|
313
|
-
fs.renameSync(innerBin, driverBin);
|
|
314
|
-
fs.rmSync(extractDir, { recursive: true, force: true });
|
|
315
|
-
if (os.platform() !== 'win32')
|
|
316
|
-
fs.chmodSync(driverBin, 0o755);
|
|
317
337
|
return driverBin;
|
|
318
338
|
}
|
|
319
339
|
// ─── Firefox driver download ──────────────────────────────────────────────────
|
|
@@ -340,20 +360,43 @@ async function downloadGeckodriver() {
|
|
|
340
360
|
throw new Error(`No geckodriver asset found for platform "${platform}".\n` +
|
|
341
361
|
`Set CRAFTDRIVER_DRIVER_PATH to a local geckodriver binary to skip auto-resolution.`);
|
|
342
362
|
}
|
|
343
|
-
const tmpFile = path.join(cacheDir(), `_geckodriver-${version}${ext}`);
|
|
344
363
|
process.stderr.write(`[craftdriver] Downloading geckodriver ${version}…\n`);
|
|
345
364
|
fs.mkdirSync(cacheDir(), { recursive: true });
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
365
|
+
// Per-call unique working directory so parallel resolvers don't share a
|
|
366
|
+
// fixed temp path and extract dir — same race, and fix, as
|
|
367
|
+
// downloadChromedriver above. (`test:firefox` runs with --maxWorkers=2.)
|
|
368
|
+
const workDir = fs.mkdtempSync(path.join(cacheDir(), '_dl-geckodriver-'));
|
|
369
|
+
try {
|
|
370
|
+
const tmpFile = path.join(workDir, `geckodriver${ext}`);
|
|
371
|
+
await httpsDownload(asset.browser_download_url, tmpFile);
|
|
372
|
+
// geckodriver archives contain the binary at the archive root.
|
|
373
|
+
const extractDir = path.join(workDir, 'extract');
|
|
374
|
+
if (ext === '.zip') {
|
|
375
|
+
extractZip(tmpFile, extractDir);
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
extractTarGz(tmpFile, extractDir);
|
|
379
|
+
}
|
|
380
|
+
const innerBin = path.join(extractDir, binName);
|
|
381
|
+
if (!fs.existsSync(innerBin)) {
|
|
382
|
+
throw new Error(`Unexpected archive layout: could not find ${innerBin} after extraction.`);
|
|
383
|
+
}
|
|
384
|
+
fs.mkdirSync(driverDir, { recursive: true });
|
|
385
|
+
// See downloadChromedriver: tolerate a destination a concurrent resolver
|
|
386
|
+
// already placed (Windows rename onto an existing file throws).
|
|
387
|
+
try {
|
|
388
|
+
fs.renameSync(innerBin, driverBin);
|
|
389
|
+
}
|
|
390
|
+
catch (err) {
|
|
391
|
+
if (!fs.existsSync(driverBin))
|
|
392
|
+
throw err;
|
|
393
|
+
}
|
|
394
|
+
if (os.platform() !== 'win32')
|
|
395
|
+
fs.chmodSync(driverBin, 0o755);
|
|
350
396
|
}
|
|
351
|
-
|
|
352
|
-
|
|
397
|
+
finally {
|
|
398
|
+
fs.rmSync(workDir, { recursive: true, force: true });
|
|
353
399
|
}
|
|
354
|
-
fs.unlinkSync(tmpFile);
|
|
355
|
-
if (os.platform() !== 'win32')
|
|
356
|
-
fs.chmodSync(driverBin, 0o755);
|
|
357
400
|
}
|
|
358
401
|
// Refresh TTL record regardless of whether we downloaded a new version.
|
|
359
402
|
recordResolvedDriver(cacheKey, version, driverBin);
|