craftdriver 0.2.2 → 1.0.1

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.
Files changed (94) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/dist/cli/mcp/server.js +16 -3
  3. package/dist/cli/mcp/server.js.map +1 -1
  4. package/dist/lib/bidi/connection.d.ts +1 -1
  5. package/dist/lib/bidi/connection.d.ts.map +1 -1
  6. package/dist/lib/bidi/connection.js +3 -2
  7. package/dist/lib/bidi/connection.js.map +1 -1
  8. package/dist/lib/bidi/index.d.ts +40 -3
  9. package/dist/lib/bidi/index.d.ts.map +1 -1
  10. package/dist/lib/bidi/index.js +55 -18
  11. package/dist/lib/bidi/index.js.map +1 -1
  12. package/dist/lib/bidi/logs.d.ts.map +1 -1
  13. package/dist/lib/bidi/logs.js +7 -2
  14. package/dist/lib/bidi/logs.js.map +1 -1
  15. package/dist/lib/bidi/network.d.ts +9 -0
  16. package/dist/lib/bidi/network.d.ts.map +1 -1
  17. package/dist/lib/bidi/network.js +26 -11
  18. package/dist/lib/bidi/network.js.map +1 -1
  19. package/dist/lib/browser.d.ts +42 -4
  20. package/dist/lib/browser.d.ts.map +1 -1
  21. package/dist/lib/browser.js +140 -62
  22. package/dist/lib/browser.js.map +1 -1
  23. package/dist/lib/browserContext.d.ts +7 -2
  24. package/dist/lib/browserContext.d.ts.map +1 -1
  25. package/dist/lib/browserContext.js +15 -6
  26. package/dist/lib/browserContext.js.map +1 -1
  27. package/dist/lib/builder.d.ts +2 -1
  28. package/dist/lib/builder.d.ts.map +1 -1
  29. package/dist/lib/builder.js +35 -5
  30. package/dist/lib/builder.js.map +1 -1
  31. package/dist/lib/clickFastPath.d.ts +7 -0
  32. package/dist/lib/clickFastPath.d.ts.map +1 -0
  33. package/dist/lib/clickFastPath.js +39 -0
  34. package/dist/lib/clickFastPath.js.map +1 -0
  35. package/dist/lib/driver.d.ts.map +1 -1
  36. package/dist/lib/driver.js +21 -6
  37. package/dist/lib/driver.js.map +1 -1
  38. package/dist/lib/driverManager.d.ts +6 -0
  39. package/dist/lib/driverManager.d.ts.map +1 -1
  40. package/dist/lib/driverManager.js +97 -22
  41. package/dist/lib/driverManager.js.map +1 -1
  42. package/dist/lib/elementHandle.d.ts.map +1 -1
  43. package/dist/lib/elementHandle.js +7 -2
  44. package/dist/lib/elementHandle.js.map +1 -1
  45. package/dist/lib/expect.d.ts.map +1 -1
  46. package/dist/lib/expect.js +91 -229
  47. package/dist/lib/expect.js.map +1 -1
  48. package/dist/lib/firefox.d.ts.map +1 -1
  49. package/dist/lib/firefox.js +2 -1
  50. package/dist/lib/firefox.js.map +1 -1
  51. package/dist/lib/frame.d.ts.map +1 -1
  52. package/dist/lib/frame.js +7 -7
  53. package/dist/lib/frame.js.map +1 -1
  54. package/dist/lib/http.d.ts +7 -0
  55. package/dist/lib/http.d.ts.map +1 -1
  56. package/dist/lib/http.js +112 -3
  57. package/dist/lib/http.js.map +1 -1
  58. package/dist/lib/loadState.d.ts +23 -0
  59. package/dist/lib/loadState.d.ts.map +1 -0
  60. package/dist/lib/loadState.js +25 -0
  61. package/dist/lib/loadState.js.map +1 -0
  62. package/dist/lib/locator.d.ts +2 -0
  63. package/dist/lib/locator.d.ts.map +1 -1
  64. package/dist/lib/locator.js +19 -6
  65. package/dist/lib/locator.js.map +1 -1
  66. package/dist/lib/mouse.d.ts.map +1 -1
  67. package/dist/lib/mouse.js +2 -1
  68. package/dist/lib/mouse.js.map +1 -1
  69. package/dist/lib/page.d.ts +14 -1
  70. package/dist/lib/page.d.ts.map +1 -1
  71. package/dist/lib/page.js +66 -15
  72. package/dist/lib/page.js.map +1 -1
  73. package/dist/lib/service.d.ts +1 -0
  74. package/dist/lib/service.d.ts.map +1 -1
  75. package/dist/lib/service.js +21 -3
  76. package/dist/lib/service.js.map +1 -1
  77. package/dist/lib/timing.d.ts +104 -0
  78. package/dist/lib/timing.d.ts.map +1 -0
  79. package/dist/lib/timing.js +108 -0
  80. package/dist/lib/timing.js.map +1 -0
  81. package/dist/lib/wait.d.ts.map +1 -1
  82. package/dist/lib/wait.js +13 -6
  83. package/dist/lib/wait.js.map +1 -1
  84. package/docs/bidi-features.md +10 -2
  85. package/docs/browser-api.md +2 -1
  86. package/docs/browser-context.md +11 -14
  87. package/docs/dialogs.md +14 -3
  88. package/docs/driver-configuration.md +126 -8
  89. package/docs/emulation.md +8 -4
  90. package/docs/error-codes.md +9 -4
  91. package/docs/keyboard-mouse.md +20 -7
  92. package/docs/session-management.md +1 -1
  93. package/package.json +4 -1
  94. package/skills/craftdriver/SKILL.md +3 -2
package/dist/lib/http.js CHANGED
@@ -1,6 +1,92 @@
1
1
  import http from 'http';
2
2
  import https from 'https';
3
3
  import { URL } from 'url';
4
+ import { CraftdriverError, ErrorCode } from './errors.js';
5
+ /**
6
+ * One keep-alive `Agent` per endpoint, shared across every `HttpClient`
7
+ * instance for that endpoint (every Classic WebDriver command constructs a
8
+ * fresh `HttpClient`, but they all resolve to the same pooled agent here) —
9
+ * avoids a fresh TCP/TLS handshake on every single command.
10
+ */
11
+ const agents = new Map();
12
+ function agentKey(endpoint) {
13
+ return `${endpoint.protocol}//${endpoint.hostname}:${endpoint.port}`;
14
+ }
15
+ function getAgent(endpoint) {
16
+ const key = agentKey(endpoint);
17
+ let agent = agents.get(key);
18
+ if (!agent) {
19
+ agent =
20
+ endpoint.protocol === 'https'
21
+ ? new https.Agent({ keepAlive: true, maxSockets: 6 })
22
+ : new http.Agent({ keepAlive: true, maxSockets: 6 });
23
+ agents.set(key, agent);
24
+ }
25
+ return agent;
26
+ }
27
+ /**
28
+ * Build a `CraftdriverError` from a non-200 WebDriver response.
29
+ *
30
+ * Per the W3C WebDriver spec a *successful* command always replies HTTP 200;
31
+ * any other status is an error whose body is
32
+ * `{ value: { error, message, stacktrace } }`, where `error` is the spec's
33
+ * machine-readable JSON error code (e.g. `"stale element reference"`,
34
+ * `"element click intercepted"`). We surface `error`/`message` as
35
+ * `detail.webDriverError` / `detail.webDriverMessage` so recovery loops can
36
+ * classify the failure without string-scraping the human message.
37
+ *
38
+ * The status code is the sole gate for *whether* this is an error — never the
39
+ * body shape. A successful `executeScript`/`evaluate()` can legitimately return
40
+ * user data shaped like `{ error, message, stacktrace }` (e.g. serializing a
41
+ * caught `Error`), and that must not be misread as a protocol failure. When the
42
+ * body doesn't parse or doesn't carry the spec shape (proxy text, HTML error
43
+ * page, empty body) we fall back to the raw text.
44
+ */
45
+ function buildDriverError(status, text, method, path) {
46
+ let webDriverError;
47
+ let webDriverMessage;
48
+ let stacktrace;
49
+ try {
50
+ const parsed = JSON.parse(text);
51
+ const v = parsed?.value;
52
+ if (v && typeof v === 'object') {
53
+ if (typeof v.error === 'string')
54
+ webDriverError = v.error;
55
+ if (typeof v.message === 'string')
56
+ webDriverMessage = v.message;
57
+ if (typeof v.stacktrace === 'string')
58
+ stacktrace = v.stacktrace;
59
+ }
60
+ }
61
+ catch {
62
+ // Non-JSON error body — keep the raw text in detail below.
63
+ }
64
+ const summary = webDriverError
65
+ ? `${webDriverError}${webDriverMessage ? `: ${webDriverMessage}` : ''}`
66
+ : `HTTP ${status}${text ? `: ${text}` : ''}`;
67
+ return new CraftdriverError(ErrorCode.DRIVER_ERROR, `WebDriver command ${method} ${path} failed — ${summary}`, {
68
+ detail: {
69
+ method,
70
+ path,
71
+ status,
72
+ ...(webDriverError !== undefined ? { webDriverError } : {}),
73
+ ...(webDriverMessage !== undefined ? { webDriverMessage } : {}),
74
+ ...(stacktrace !== undefined ? { stacktrace } : {}),
75
+ ...(webDriverError === undefined ? { body: text } : {}),
76
+ },
77
+ });
78
+ }
79
+ function buildTransportError(err, method, path) {
80
+ return new CraftdriverError(ErrorCode.DRIVER_ERROR, `WebDriver command ${method} ${path} failed — ${err.message}`, {
81
+ detail: {
82
+ method,
83
+ path,
84
+ transportError: err.name,
85
+ transportMessage: err.message,
86
+ },
87
+ cause: err,
88
+ });
89
+ }
4
90
  export class HttpClient {
5
91
  endpoint;
6
92
  constructor(endpoint) {
@@ -13,6 +99,7 @@ export class HttpClient {
13
99
  const payload = body ? JSON.stringify(body) : undefined;
14
100
  const options = {
15
101
  method,
102
+ agent: getAgent(this.endpoint),
16
103
  headers: {
17
104
  'Content-Type': 'application/json; charset=utf-8',
18
105
  Accept: 'application/json',
@@ -24,24 +111,46 @@ export class HttpClient {
24
111
  const req = transport.request(url, options, (res) => {
25
112
  const chunks = [];
26
113
  res.on('data', (c) => chunks.push(Buffer.from(c)));
114
+ res.on('error', (err) => reject(buildTransportError(err, method, path)));
27
115
  res.on('end', () => {
116
+ const status = res.statusCode ?? 0;
28
117
  const text = Buffer.concat(chunks).toString('utf8');
118
+ // W3C WebDriver: success is always HTTP 200; any other status is an
119
+ // error response. Gate on status alone (see buildDriverError) so a
120
+ // successful command returning error-shaped data is never misread.
121
+ if (status !== 200) {
122
+ return reject(buildDriverError(status, text, method, path));
123
+ }
29
124
  if (!text)
30
125
  return resolve({ value: undefined });
31
126
  try {
32
127
  const json = JSON.parse(text);
33
128
  resolve(json);
34
129
  }
35
- catch (e) {
36
- reject(new Error(`Invalid JSON response: ${text}`));
130
+ catch {
131
+ reject(new CraftdriverError(ErrorCode.DRIVER_ERROR, `Invalid JSON in WebDriver response for ${method} ${path}: ${text}`, { detail: { method, path, status, body: text } }));
37
132
  }
38
133
  });
39
134
  });
40
- req.on('error', reject);
135
+ req.on('error', (err) => reject(buildTransportError(err, method, path)));
41
136
  if (payload)
42
137
  req.write(payload);
43
138
  req.end();
44
139
  });
45
140
  }
141
+ /**
142
+ * Destroy the keep-alive agent (and its pooled sockets) for this client's
143
+ * endpoint. Call once the WebDriver session owning that endpoint is done
144
+ * (`Driver.quit()`) so idle keep-alive sockets don't keep the Node process
145
+ * alive after the browser session ends.
146
+ */
147
+ close() {
148
+ const key = agentKey(this.endpoint);
149
+ const agent = agents.get(key);
150
+ if (agent) {
151
+ agent.destroy();
152
+ agents.delete(key);
153
+ }
154
+ }
46
155
  }
47
156
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG1B,MAAM,OAAO,UAAU;IACD;IAApB,YAAoB,QAA2B;QAA3B,aAAQ,GAAR,QAAQ,CAAmB;IAAG,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAc,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAkB;QAC5D,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACtH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAExD,MAAM,OAAO,GAAwB;YACnC,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,iCAAiC;gBACjD,MAAM,EAAE,kBAAkB;gBAC1B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE;SACF,CAAC;QAEF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAE,KAAgC,CAAC,CAAC,CAAC,IAAI,CAAC;QAErE,OAAO,MAAM,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,GAAyB,EAAE,EAAE;gBACxE,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3D,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACpD,IAAI,CAAC,IAAI;wBAAE,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,SAAyB,EAAE,CAAC,CAAC;oBAChE,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAC;wBACpD,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,IAAI,OAAO;gBAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/lib/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Single source of truth for how a public load-state maps to the BiDi
3
+ * `browsingContext.navigate` `wait` value.
4
+ *
5
+ * Three navigation entry points issue `browsingContext.navigate` — `Browser`'s
6
+ * and `Page`'s `navigateTo()` and `Page.setContent()` — and each used to inline
7
+ * the same three-way ternary. Keeping the mapping here means the wait-semantics
8
+ * contract can't silently drift between them (a class of bug that is easy to
9
+ * introduce and hard to notice: a navigation that returns at the wrong
10
+ * readiness point).
11
+ */
12
+ /** Load-states accepted by `navigateTo()` / `setContent()`. */
13
+ export type NavigationLoadState = 'load' | 'domcontentloaded' | 'networkidle' | 'none';
14
+ /** BiDi `browsingContext.navigate` readiness values. */
15
+ export type BiDiNavigateWait = 'none' | 'interactive' | 'complete';
16
+ /**
17
+ * Map a public load-state to the BiDi navigate `wait` value.
18
+ *
19
+ * `'load'` and `'networkidle'` both resolve to `'complete'`; `'networkidle'`
20
+ * then layers its own network-quiet wait on top of the completed navigation.
21
+ */
22
+ export declare function bidiWaitFor(waitUntil: NavigationLoadState): BiDiNavigateWait;
23
+ //# sourceMappingURL=loadState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadState.d.ts","sourceRoot":"","sources":["../../src/lib/loadState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,kBAAkB,GAAG,aAAa,GAAG,MAAM,CAAC;AAEvF,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC;AAEnE;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,mBAAmB,GAAG,gBAAgB,CAM5E"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Single source of truth for how a public load-state maps to the BiDi
3
+ * `browsingContext.navigate` `wait` value.
4
+ *
5
+ * Three navigation entry points issue `browsingContext.navigate` — `Browser`'s
6
+ * and `Page`'s `navigateTo()` and `Page.setContent()` — and each used to inline
7
+ * the same three-way ternary. Keeping the mapping here means the wait-semantics
8
+ * contract can't silently drift between them (a class of bug that is easy to
9
+ * introduce and hard to notice: a navigation that returns at the wrong
10
+ * readiness point).
11
+ */
12
+ /**
13
+ * Map a public load-state to the BiDi navigate `wait` value.
14
+ *
15
+ * `'load'` and `'networkidle'` both resolve to `'complete'`; `'networkidle'`
16
+ * then layers its own network-quiet wait on top of the completed navigation.
17
+ */
18
+ export function bidiWaitFor(waitUntil) {
19
+ return waitUntil === 'none'
20
+ ? 'none'
21
+ : waitUntil === 'domcontentloaded'
22
+ ? 'interactive'
23
+ : 'complete';
24
+ }
25
+ //# sourceMappingURL=loadState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadState.js","sourceRoot":"","sources":["../../src/lib/loadState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,SAA8B;IACxD,OAAO,SAAS,KAAK,MAAM;QACzB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,SAAS,KAAK,kBAAkB;YAChC,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,UAAU,CAAC;AACnB,CAAC"}
@@ -44,6 +44,8 @@ export declare class Locator {
44
44
  /** Poll until any element is present in the final result set (need not be visible). */
45
45
  private _waitForAny;
46
46
  private _resolve;
47
+ /** Resolve the current final match once without waiting. */
48
+ private _resolveOnce;
47
49
  private _resolveExisting;
48
50
  /**
49
51
  * Resolve to a visible element WITHOUT applying context switching (used inside _withContext blocks).
@@ -1 +1 @@
1
- {"version":3,"file":"locator.d.ts","sourceRoot":"","sources":["../../src/lib/locator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,OAAO;IAQhB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,iBAAiB;IAT3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,gBAAgB,CAAC,CAAkB;gBAGjC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,EAAE,EACN,iBAAiB,GAAE,MAAM,MAAmB;IAGtD,gGAAgG;IAChG,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;YAK9B,YAAY;IAY1B,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,GAAG,OAAO;IAOvC,gFAAgF;IAChF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAM3B,sDAAsD;IACtD,KAAK,IAAI,OAAO;IAIhB,qDAAqD;IACrD,IAAI,IAAI,OAAO;IAMf,mFAAmF;IACnF,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO;IAOnE,OAAO,CAAC,MAAM;IAUd,4EAA4E;YAC9D,QAAQ;IAStB,sDAAsD;YACxC,aAAa;IAyB3B,qDAAqD;YACvC,UAAU;IAQxB,yEAAyE;YAC3D,eAAe;IAuC7B,uFAAuF;YACzE,WAAW;YAwBX,QAAQ;YAKR,gBAAgB;IAK9B;;;OAGG;YACW,uBAAuB;IAIrC;;;OAGG;YACW,mBAAmB;IAI3B,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D,IAAI,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAOpD,wBAAwB;IAClB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAY1D;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAO9B;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAOrC,OAAO,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;QACtD,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpB,gGAAgG;YAClF,qBAAqB;IA2BnC,kEAAkE;IAClE,MAAM,IAAI,SAAS;IAInB,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB;;;OAGG;IACH,IAAI,IAAI,IAAI,IAAI,CASf;CACF"}
1
+ {"version":3,"file":"locator.d.ts","sourceRoot":"","sources":["../../src/lib/locator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,OAAO;IAQhB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,iBAAiB;IAT3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,gBAAgB,CAAC,CAAkB;gBAGjC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,EAAE,EACN,iBAAiB,GAAE,MAAM,MAAmB;IAGtD,gGAAgG;IAChG,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;YAK9B,YAAY;IAY1B,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,GAAG,OAAO;IAQvC,gFAAgF;IAChF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAM3B,sDAAsD;IACtD,KAAK,IAAI,OAAO;IAIhB,qDAAqD;IACrD,IAAI,IAAI,OAAO;IAMf,mFAAmF;IACnF,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO;IAOnE,OAAO,CAAC,MAAM;IAUd,4EAA4E;YAC9D,QAAQ;IAStB,sDAAsD;YACxC,aAAa;IAyB3B,qDAAqD;YACvC,UAAU;IAQxB,yEAAyE;YAC3D,eAAe;IAuC7B,uFAAuF;YACzE,WAAW;YAwBX,QAAQ;IAKtB,4DAA4D;YAC9C,YAAY;YAKZ,gBAAgB;IAK9B;;;OAGG;YACW,uBAAuB;IAIrC;;;OAGG;YACW,mBAAmB;IAI3B,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAW7C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D,IAAI,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAOpD,wBAAwB;IAClB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAY1D;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAO9B;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAWrC,OAAO,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;QACtD,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpB,gGAAgG;YAClF,qBAAqB;IA2BnC,kEAAkE;IAClE,MAAM,IAAI,SAAS;IAInB,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB;;;OAGG;IACH,IAAI,IAAI,IAAI,IAAI,CASf;CACF"}
@@ -3,6 +3,8 @@ import { ElementHandle } from './elementHandle.js';
3
3
  import { expectSelector } from './expect.js';
4
4
  import { A11y } from './a11y.js';
5
5
  import { CraftdriverError, ErrorCode } from './errors.js';
6
+ import { DEFAULT_POLL_INTERVAL_MS } from './timing.js';
7
+ import { clickWithFastPath } from './clickFastPath.js';
6
8
  export class Locator {
7
9
  driver;
8
10
  by;
@@ -39,6 +41,7 @@ export class Locator {
39
41
  const childBy = typeof selector === 'string' ? By.css(selector) : selector;
40
42
  const child = new Locator(this.driver, childBy, this.getDefaultTimeout);
41
43
  child._parent = this;
44
+ child._contextSwitcher = this._contextSwitcher;
42
45
  return child;
43
46
  }
44
47
  /** Return a new Locator targeting the element at position `index` (0-based). */
@@ -136,7 +139,7 @@ export class Locator {
136
139
  catch (e) {
137
140
  lastError = e;
138
141
  }
139
- await new Promise((r) => setTimeout(r, 100));
142
+ await new Promise((r) => setTimeout(r, DEFAULT_POLL_INTERVAL_MS));
140
143
  }
141
144
  const selector = `${this.by.using}=${this.by.value}`;
142
145
  if (everMatched) {
@@ -165,7 +168,7 @@ export class Locator {
165
168
  catch (e) {
166
169
  lastError = e;
167
170
  }
168
- await new Promise((r) => setTimeout(r, 100));
171
+ await new Promise((r) => setTimeout(r, DEFAULT_POLL_INTERVAL_MS));
169
172
  }
170
173
  const selector = `${this.by.using}=${this.by.value}`;
171
174
  throw new CraftdriverError(ErrorCode.NO_MATCH, `No element matched locator "${selector}" within ${timeout}ms`, {
@@ -178,6 +181,11 @@ export class Locator {
178
181
  const timeout = options?.timeout ?? this.getDefaultTimeout();
179
182
  return this._waitForVisible(timeout);
180
183
  }
184
+ /** Resolve the current final match once without waiting. */
185
+ async _resolveOnce() {
186
+ const els = await this._findFinal();
187
+ return els.length > 0 ? els[0] : null;
188
+ }
181
189
  async _resolveExisting(options) {
182
190
  const timeout = options?.timeout ?? this.getDefaultTimeout();
183
191
  return this._waitForAny(timeout);
@@ -197,9 +205,9 @@ export class Locator {
197
205
  return this._resolveExisting(options);
198
206
  }
199
207
  async click(options) {
208
+ const timeout = options?.timeout ?? this.getDefaultTimeout();
200
209
  return this._withContext(async () => {
201
- const el = await this._waitForVisibleOrSimple(options);
202
- await el.click();
210
+ await clickWithFastPath(() => this._resolveOnce(), (remaining) => this._waitForVisibleOrSimple({ timeout: remaining }), timeout);
203
211
  });
204
212
  }
205
213
  async fill(text, options) {
@@ -249,7 +257,12 @@ export class Locator {
249
257
  async all() {
250
258
  return this._withContext(async () => {
251
259
  const els = await this._findFinal();
252
- return els.map((we) => ElementHandle.fromWebElement(this.driver, we, this.getDefaultTimeout));
260
+ return els.map((we) => {
261
+ const handle = ElementHandle.fromWebElement(this.driver, we, this.getDefaultTimeout);
262
+ if (this._contextSwitcher)
263
+ handle.withContext(this._contextSwitcher);
264
+ return handle;
265
+ });
253
266
  });
254
267
  }
255
268
  waitFor(options) {
@@ -287,7 +300,7 @@ export class Locator {
287
300
  if (!anyVisible)
288
301
  return;
289
302
  }
290
- await new Promise((r) => setTimeout(r, 100));
303
+ await new Promise((r) => setTimeout(r, DEFAULT_POLL_INTERVAL_MS));
291
304
  }
292
305
  const selector = `${this.by.using}=${this.by.value}`;
293
306
  throw new CraftdriverError(ErrorCode.TIMEOUT_WAITING_STATE, `Timed out after ${timeout}ms waiting for locator "${selector}" to become ${state}`, { detail: { selector, state, timeout } });
@@ -1 +1 @@
1
- {"version":3,"file":"locator.js","sourceRoot":"","sources":["../../src/lib/locator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"locator.js","sourceRoot":"","sources":["../../src/lib/locator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mouse.d.ts","sourceRoot":"","sources":["../../src/lib/mouse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGhC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AACtD,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7C,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC;AAQzC,qBAAa,KAAK;IACJ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;YAEpB,cAAc;IAOtB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtE,IAAI,CAAC,MAAM,GAAE,WAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,EAAE,CAAC,MAAM,GAAE,WAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,KAAK,CACT,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,GAAG,CAAC,CAAA;KAAE,GAC3F,OAAO,CAAC,IAAI,CAAC;IAeV,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,GAAG,CAAC,CAAA;KAAE,GACtE,OAAO,CAAC,IAAI,CAAC;IAQV,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,GAAG,CAAC,CAAA;KAAE,GACrE,OAAO,CAAC,IAAI,CAAC;IA0BV,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB5E"}
1
+ {"version":3,"file":"mouse.d.ts","sourceRoot":"","sources":["../../src/lib/mouse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIhC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AACtD,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7C,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC;AAQzC,qBAAa,KAAK;IACJ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;YAEpB,cAAc;IAOtB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtE,IAAI,CAAC,MAAM,GAAE,WAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,EAAE,CAAC,MAAM,GAAE,WAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,KAAK,CACT,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,GAAG,CAAC,CAAA;KAAE,GAC3F,OAAO,CAAC,IAAI,CAAC;IAeV,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,GAAG,CAAC,CAAA;KAAE,GACtE,OAAO,CAAC,IAAI,CAAC;IAQV,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,GAAG,CAAC,CAAA;KAAE,GACrE,OAAO,CAAC,IAAI,CAAC;IA0BV,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB5E"}
package/dist/lib/mouse.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { By } from './by.js';
2
2
  import { Key } from './keys.js';
3
3
  import { until } from './wait.js';
4
+ import { DEFAULT_ELEMENT_TIMEOUT_MS } from './timing.js';
4
5
  function toButtonCode(btn) {
5
6
  if (btn === 'middle')
6
7
  return 1;
@@ -16,7 +17,7 @@ export class Mouse {
16
17
  async resolveElement(selector) {
17
18
  const by = typeof selector === 'string' ? By.css(selector) : selector;
18
19
  // Wait until element is attached and visible to improve click reliability
19
- const el = await this.driver.wait(until.elementIsVisible(by), { timeout: 5000 });
20
+ const el = await this.driver.wait(until.elementIsVisible(by), { timeout: DEFAULT_ELEMENT_TIMEOUT_MS });
20
21
  return el;
21
22
  }
22
23
  async move(target, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"mouse.js","sourceRoot":"","sources":["../../src/lib/mouse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAMlC,SAAS,YAAY,CAAC,GAA4B;IAChD,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,OAAO,KAAK;IACI;IAApB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAI,CAAC;IAE/B,KAAK,CAAC,cAAc,CAAC,QAAqB;QAChD,MAAM,EAAE,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACtE,0EAA0E;QAC1E,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,OAAiC;QAC1D,MAAM,QAAQ,GAAG,OAAO,EAAE,UAAU,IAAI,GAAG,CAAC;QAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAK,MAAa,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAqB,CAAC,CAAC;YAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,MAAe,CAAC;YAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAsB,MAAM;QACrC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,SAAsB,MAAM;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,KAAK,CACT,MAAc,EACd,OAA4F;QAE5F,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,MAAM,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,SAAS;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAE,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAK,MAAa,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAqB,CAAC,CAAC;YAC5D,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,MAAe,CAAC;YAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,MAAc,EACd,OAAuE;QAEvE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACvB,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,OAAO,EAAE,SAAS;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,EAAU,EACV,OAAsE;QAEtE,MAAM,QAAQ,GAAG,OAAO,EAAE,UAAU,IAAI,GAAG,CAAC;QAC5C,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,SAAS;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAE,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,KAAK,EAAE,CAAS,EAAE,EAAE;YAClC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAAQ,CAAC,KAAK;gBAC1C,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,CAAgB,CAAC,CAAC;YACrD,OAAO,CAAU,CAAC;QACpB,CAAC,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAc,EAAE,MAAe;QACzD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAK,MAAa,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAqB,CAAC,CAAC;YAC5D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAC5C,wJAAwJ,EACxJ,CAAE,EAAU,CAAC,MAAM,EAAE,CAAqB,CAC3C,CAAC;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,GAAG,MAAe,CAAC;YAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"mouse.js","sourceRoot":"","sources":["../../src/lib/mouse.ts"],"names":[],"mappings":"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"}
@@ -42,9 +42,22 @@ export declare class Page {
42
42
  /** Switch back to the previous window after a Classic action. */
43
43
  private _restoreTo;
44
44
  private _withWindow;
45
+ private hasInitScriptsForNavigation;
45
46
  url(): Promise<string>;
46
47
  title(): Promise<string>;
47
- navigateTo(url: string): Promise<void>;
48
+ /**
49
+ * @param opts.waitUntil Load state to wait for. Defaults to `'load'`.
50
+ * `'load'` on a default-context page is Classic-first unless a preload
51
+ * script is active. Classic navigateTo() already blocks until
52
+ * `document.readyState === 'complete'`; preload-backed pages stay on BiDi
53
+ * so the navigation and the next BiDi script evaluation observe the same
54
+ * document lifecycle. `'none'` and `'domcontentloaded'` require BiDi;
55
+ * `'networkidle'` isn't available at the Page level — use
56
+ * `browser.waitForLoadState('networkidle')`.
57
+ */
58
+ navigateTo(url: string, opts?: {
59
+ waitUntil?: Exclude<LoadState, 'networkidle'>;
60
+ }): Promise<void>;
48
61
  /**
49
62
  * Resolve `url` against the owning context's `baseURL`, if any.
50
63
  * Absolute URLs are returned as-is.
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/lib/page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/lib/page.ts"],"names":[],"mappings":"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"}
package/dist/lib/page.js CHANGED
@@ -13,7 +13,15 @@ import { ElementHandle } from './elementHandle.js';
13
13
  import { Locator } from './locator.js';
14
14
  import { expectSelector } from './expect.js';
15
15
  import { until } from './wait.js';
16
+ import { bidiWaitFor } from './loadState.js';
17
+ import { DEFAULT_NAVIGATION_TIMEOUT_MS, STATE_POLL_INTERVAL_MS } from './timing.js';
16
18
  import { CraftdriverError, ErrorCode } from './errors.js';
19
+ import { clickWithFastPath } from './clickFastPath.js';
20
+ function isNoSuchWindowError(err) {
21
+ if (!CraftdriverError.is(err, ErrorCode.DRIVER_ERROR))
22
+ return false;
23
+ return err.detail?.webDriverError === 'no such window' || err.message.includes('no such window');
24
+ }
17
25
  export class Page {
18
26
  driver;
19
27
  getDefaultTimeout;
@@ -45,7 +53,14 @@ export class Page {
45
53
  }
46
54
  /** Switch the Classic driver to this window for element operations. */
47
55
  async _activate() {
48
- const prev = await this.driver.getCurrentWindowHandle();
56
+ let prev;
57
+ try {
58
+ prev = await this.driver.getCurrentWindowHandle();
59
+ }
60
+ catch (err) {
61
+ if (!isNoSuchWindowError(err))
62
+ throw err;
63
+ }
49
64
  if (prev !== this.contextId) {
50
65
  await this.driver.switchToWindow(this.contextId);
51
66
  }
@@ -54,7 +69,15 @@ export class Page {
54
69
  /** Switch back to the previous window after a Classic action. */
55
70
  async _restoreTo(handle) {
56
71
  if (handle !== this.contextId) {
57
- await this.driver.switchToWindow(handle);
72
+ if (!handle)
73
+ return;
74
+ try {
75
+ await this.driver.switchToWindow(handle);
76
+ }
77
+ catch (err) {
78
+ if (!isNoSuchWindowError(err))
79
+ throw err;
80
+ }
58
81
  }
59
82
  }
60
83
  async _withWindow(fn) {
@@ -66,6 +89,9 @@ export class Page {
66
89
  await this._restoreTo(prev);
67
90
  }
68
91
  }
92
+ hasInitScriptsForNavigation() {
93
+ return this._owner?._hasInitScriptsForNavigation() ?? false;
94
+ }
69
95
  // ── URL / title / navigation ──────────────────────────────────────────────
70
96
  async url() {
71
97
  if (this.conn) {
@@ -80,16 +106,39 @@ export class Page {
80
106
  }
81
107
  return this._withWindow(() => this.driver.getTitle());
82
108
  }
83
- async navigateTo(url) {
109
+ /**
110
+ * @param opts.waitUntil Load state to wait for. Defaults to `'load'`.
111
+ * `'load'` on a default-context page is Classic-first unless a preload
112
+ * script is active. Classic navigateTo() already blocks until
113
+ * `document.readyState === 'complete'`; preload-backed pages stay on BiDi
114
+ * so the navigation and the next BiDi script evaluation observe the same
115
+ * document lifecycle. `'none'` and `'domcontentloaded'` require BiDi;
116
+ * `'networkidle'` isn't available at the Page level — use
117
+ * `browser.waitForLoadState('networkidle')`.
118
+ */
119
+ async navigateTo(url, opts) {
84
120
  const resolved = this._resolveUrl(url);
85
- if (this.conn) {
121
+ const waitUntil = opts?.waitUntil ?? 'load';
122
+ // Classic's window-handle APIs only reliably reach pages in the default
123
+ // BiDi user context, and preload-backed pages benefit from keeping
124
+ // navigation on the same protocol that installed/evaluates those scripts.
125
+ // All other default-context 'load' navigations keep the Classic fast path.
126
+ const isDefaultContext = !this._owner || this._owner.id === 'default';
127
+ const needsBiDi = waitUntil !== 'load' ||
128
+ !isDefaultContext ||
129
+ this.hasInitScriptsForNavigation();
130
+ if (this.conn && needsBiDi) {
131
+ const bidiWait = bidiWaitFor(waitUntil);
86
132
  await this.conn.send('browsingContext.navigate', {
87
133
  context: this.contextId,
88
134
  url: resolved,
89
- wait: 'complete',
135
+ wait: bidiWait,
90
136
  });
91
137
  return;
92
138
  }
139
+ // Classic path — default-context 'load', or no BiDi connection. BiDi
140
+ // context ids equal Classic window handles for top-level contexts (see
141
+ // `_makeContextSwitcher()` below), so `_withWindow` works here too.
93
142
  await this._withWindow(async () => {
94
143
  await this.driver.navigateTo(resolved);
95
144
  });
@@ -156,7 +205,7 @@ export class Page {
156
205
  await this._withWindow(() => this.driver.refresh());
157
206
  }
158
207
  async waitForLoadState(state = 'load', opts) {
159
- const timeout = opts?.timeout ?? 30000;
208
+ const timeout = opts?.timeout ?? DEFAULT_NAVIGATION_TIMEOUT_MS;
160
209
  if (this.conn) {
161
210
  const readyState = await this.evaluate('return document.readyState');
162
211
  const satisfied = state === 'load'
@@ -184,7 +233,7 @@ export class Page {
184
233
  const rs = await this.driver.executeScript('return document.readyState', []);
185
234
  if (rs === 'complete' || (state === 'domcontentloaded' && rs === 'interactive'))
186
235
  return;
187
- await new Promise(r => setTimeout(r, 100));
236
+ await new Promise(r => setTimeout(r, STATE_POLL_INTERVAL_MS));
188
237
  }
189
238
  throw new CraftdriverError(ErrorCode.TIMEOUT_WAITING_LOAD, `waitForLoadState timed out after ${timeout}ms`, { detail: { state, timeout } });
190
239
  });
@@ -246,9 +295,7 @@ export class Page {
246
295
  const waitUntil = opts?.waitUntil ?? 'load';
247
296
  const url = `data:text/html;charset=utf-8,${encodeURIComponent(html)}`;
248
297
  if (this.conn) {
249
- const bidiWait = waitUntil === 'none' ? 'none'
250
- : waitUntil === 'domcontentloaded' ? 'interactive'
251
- : 'complete';
298
+ const bidiWait = bidiWaitFor(waitUntil);
252
299
  await this.conn.send('browsingContext.navigate', {
253
300
  context: this.contextId,
254
301
  url,
@@ -297,15 +344,19 @@ export class Page {
297
344
  async findAll(selector) {
298
345
  const by = typeof selector === 'string' ? By.css(selector) : selector;
299
346
  const webElements = await this._withWindow(() => this.driver.findElements(by));
300
- return webElements.map((we) => ElementHandle.fromWebElement(this.driver, we, this.getDefaultTimeout));
347
+ const sw = this._makeContextSwitcher();
348
+ return webElements.map((we) => {
349
+ const handle = ElementHandle.fromWebElement(this.driver, we, this.getDefaultTimeout);
350
+ if (sw)
351
+ handle.withContext(sw);
352
+ return handle;
353
+ });
301
354
  }
302
355
  async click(selector, opts) {
303
356
  const by = typeof selector === 'string' ? By.css(selector) : selector;
357
+ const timeout = opts?.timeout ?? this.getDefaultTimeout();
304
358
  return this._withWindow(async () => {
305
- const el = await this.driver.wait(until.elementIsVisible(by), {
306
- timeout: opts?.timeout ?? this.getDefaultTimeout(),
307
- });
308
- await el.click();
359
+ await clickWithFastPath(() => this.driver.findElement(by), (remaining) => this.driver.wait(until.elementIsVisible(by), { timeout: remaining }), timeout);
309
360
  });
310
361
  }
311
362
  async fill(selector, text, opts) {