craftdriver 1.0.4 → 1.1.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 (68) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +1 -1
  3. package/dist/cli/snapshot.js +31 -4
  4. package/dist/cli/snapshot.js.map +1 -1
  5. package/dist/lib/browser.d.ts +28 -0
  6. package/dist/lib/browser.d.ts.map +1 -1
  7. package/dist/lib/browser.js +20 -1
  8. package/dist/lib/browser.js.map +1 -1
  9. package/dist/lib/by.d.ts +18 -0
  10. package/dist/lib/by.d.ts.map +1 -1
  11. package/dist/lib/by.js +141 -17
  12. package/dist/lib/by.js.map +1 -1
  13. package/dist/lib/chrome.d.ts +15 -3
  14. package/dist/lib/chrome.d.ts.map +1 -1
  15. package/dist/lib/chrome.js +4 -2
  16. package/dist/lib/chrome.js.map +1 -1
  17. package/dist/lib/driverManager.d.ts +31 -0
  18. package/dist/lib/driverManager.d.ts.map +1 -1
  19. package/dist/lib/driverManager.js +98 -7
  20. package/dist/lib/driverManager.js.map +1 -1
  21. package/dist/lib/firefox.d.ts +4 -3
  22. package/dist/lib/firefox.d.ts.map +1 -1
  23. package/dist/lib/firefox.js.map +1 -1
  24. package/dist/lib/locator.d.ts +28 -0
  25. package/dist/lib/locator.d.ts.map +1 -1
  26. package/dist/lib/locator.js +28 -0
  27. package/dist/lib/locator.js.map +1 -1
  28. package/docs/browser-api.md +5 -1
  29. package/docs/driver-configuration.md +103 -4
  30. package/docs/public/examples/a11y.html +44 -0
  31. package/docs/public/examples/clock.html +83 -0
  32. package/docs/public/examples/console-errors.html +344 -0
  33. package/docs/public/examples/dialogs.html +42 -0
  34. package/docs/public/examples/download.html +31 -0
  35. package/docs/public/examples/dynamic.html +131 -0
  36. package/docs/public/examples/emulate.html +127 -0
  37. package/docs/public/examples/evaluate.html +28 -0
  38. package/docs/public/examples/hover-select.html +295 -0
  39. package/docs/public/examples/iframe-child.html +51 -0
  40. package/docs/public/examples/iframes.html +35 -0
  41. package/docs/public/examples/keyboard.html +195 -0
  42. package/docs/public/examples/locator.html +131 -0
  43. package/docs/public/examples/login.html +116 -0
  44. package/docs/public/examples/mobile.html +270 -0
  45. package/docs/public/examples/mouse.html +505 -0
  46. package/docs/public/examples/network.html +293 -0
  47. package/docs/public/examples/popup-target.html +26 -0
  48. package/docs/public/examples/popup.html +50 -0
  49. package/docs/public/examples/screenshot.html +99 -0
  50. package/docs/public/examples/selectors.html +150 -0
  51. package/docs/public/examples/session.html +514 -0
  52. package/docs/public/examples/upload.html +36 -0
  53. package/docs/recipes/accessibility-gate.md +24 -40
  54. package/docs/recipes/console-error-gate.md +29 -38
  55. package/docs/recipes/file-upload-download.md +26 -43
  56. package/docs/recipes/find-elements.md +142 -0
  57. package/docs/recipes/login-once-reuse-session.md +24 -44
  58. package/docs/recipes/mobile-flow-with-network-and-logs.md +26 -41
  59. package/docs/recipes/mock-api-and-assert-network.md +22 -35
  60. package/docs/recipes/multi-user-contexts.md +32 -43
  61. package/docs/recipes/page-objects.md +52 -0
  62. package/docs/recipes/trace-failing-test.md +31 -44
  63. package/docs/recipes/virtual-clock-time-sensitive-ui.md +24 -40
  64. package/docs/recipes/vitest-browser-lifecycle.md +14 -11
  65. package/docs/recipes.md +20 -1
  66. package/docs/selectors.md +291 -229
  67. package/docs/zero-config-drivers.md +16 -4
  68. package/package.json +5 -1
package/dist/lib/by.js CHANGED
@@ -58,7 +58,9 @@ export class By {
58
58
  const valueExpr = trim ? normalizeSpaceLiteral(text) : xpStringLiteral(text);
59
59
  const left = cs ? nodeExpr : toLower(nodeExpr);
60
60
  const right = cs ? valueExpr : toLower(valueExpr);
61
- const xpath = `//*[${left} = ${right}]`;
61
+ // Prefer the innermost element for symmetry with partialText — a wrapper
62
+ // whose only child carries the same normalized text would otherwise match twice.
63
+ const xpath = `.//*[${left} = ${right} and not(.//*[${left} = ${right}])]`;
62
64
  return By.xpath(xpath);
63
65
  }
64
66
  /**
@@ -74,56 +76,175 @@ export class By {
74
76
  const left = cs ? nodeExpr : toLower(nodeExpr);
75
77
  const right = cs ? valueExpr : toLower(valueExpr);
76
78
  // Prefer the innermost element containing the substring to avoid matching large containers
77
- const xpath = `//*[contains(${left}, ${right}) and not(.//*[contains(${left}, ${right})])]`;
79
+ const xpath = `.//*[contains(${left}, ${right}) and not(.//*[contains(${left}, ${right})])]`;
78
80
  return By.xpath(xpath);
79
81
  }
80
82
  // Accessibility-inspired helpers (approximate)
83
+ /**
84
+ * Match elements by ARIA role, resolving **implicit** roles for common native
85
+ * elements — so `role('button')` matches `<button>` and `<input type="submit">`,
86
+ * not only `[role="button"]`.
87
+ *
88
+ * The accessible-name approximation (`opts.name`) checks common sources:
89
+ * `aria-label`, single-id `aria-labelledby`, visible text, associated labels
90
+ * for form controls, `value` (native buttons/inputs), `alt` (images), and
91
+ * `title`. `name` defaults to an exact match; pass `{ exact: false }` for a
92
+ * substring match.
93
+ *
94
+ * Coverage is a documented approximation of the common roles, not the full
95
+ * ARIA algorithm; unmapped roles still match an explicit `role=` attribute.
96
+ */
81
97
  static role(role, opts) {
82
- const conditions = [`@role=${xpStringLiteral(role)}`];
98
+ // An element matches the role if it carries role="<role>" OR is a native
99
+ // element whose implicit role is <role>. When an explicit role is present,
100
+ // it overrides the native implicit role for this approximation.
101
+ const roleTests = [roleTokenEquals(role)];
102
+ const implicit = IMPLICIT_ROLE_XPATH[role];
103
+ if (implicit)
104
+ roleTests.push(`(not(normalize-space(@role)) and (${implicit.join(' or ')}))`);
105
+ const conditions = [`(${roleTests.join(' or ')})`];
106
+ // `hidden` / `aria-hidden="true"` on ANY ancestor (not just the element
107
+ // itself) removes the whole subtree from the accessibility tree, so the
108
+ // default guard walks ancestor-or-self. CSS-based hiding (display:none via
109
+ // a stylesheet) is deliberately not covered — XPath can't read computed
110
+ // style — but the Locator's visible-resolution path filters those via the
111
+ // driver's displayedness check.
83
112
  const visibleGuard = opts?.includeHidden
84
113
  ? ''
85
- : ' and not(@hidden) and not(@aria-hidden="true")';
114
+ : ' and not(ancestor-or-self::*[@hidden]) and not(ancestor-or-self::*[@aria-hidden="true"])';
86
115
  if (opts?.name) {
87
116
  const nameLit = normalizeSpaceLiteral(opts.name);
88
117
  const eq = opts.exact !== false; // default exact
89
- const cand = 'normalize-space(@aria-label)';
90
- const textNode = 'normalize-space(.)';
91
- const pred = eq
92
- ? `(${cand} = ${nameLit} or ${textNode} = ${nameLit})`
93
- : `(contains(${cand}, ${nameLit}) or contains(${textNode}, ${nameLit}))`;
94
- conditions.push(pred);
118
+ // Approximate accessible-name sources, widest-first. This deliberately
119
+ // covers common cases without trying to implement the full AccName spec.
120
+ const candidates = [
121
+ 'normalize-space(@aria-label)',
122
+ 'normalize-space(.)',
123
+ 'normalize-space(@value)',
124
+ 'normalize-space(@alt)',
125
+ 'normalize-space(@title)',
126
+ ];
127
+ const stringPred = candidates
128
+ .map((c) => (eq ? `${c} = ${nameLit}` : `contains(${c}, ${nameLit})`))
129
+ .join(' or ');
130
+ const labelMatch = eq
131
+ ? `normalize-space(.) = ${nameLit}`
132
+ : `contains(normalize-space(.), ${nameLit})`;
133
+ const formControl = 'self::input or self::textarea or self::select';
134
+ const labelPred = [
135
+ `@aria-labelledby = //*[${labelMatch}]/@id`,
136
+ `((${formControl}) and @id = //label[${labelMatch}]/@for)`,
137
+ `((${formControl}) and ancestor::label[${labelMatch}])`,
138
+ ].join(' or ');
139
+ conditions.push(`(${stringPred} or ${labelPred})`);
95
140
  }
96
- const xpath = `//*[( ${conditions.join(' and ')} )${visibleGuard}]`;
141
+ // Leading `.//` (not `//`) so this stays scoped when used as a child of
142
+ // another Locator/element — a bare `//` is document-root-anchored in XPath
143
+ // regardless of the context node the "Find Element(s) From Element"
144
+ // WebDriver endpoint passes in, which would otherwise search the whole
145
+ // document instead of the parent's subtree.
146
+ const xpath = `.//*[( ${conditions.join(' and ')} )${visibleGuard}]`;
97
147
  return By.xpath(xpath);
98
148
  }
99
149
  static labelText(text, opts) {
100
150
  const eq = opts?.exact !== false; // default exact
101
151
  const lit = normalizeSpaceLiteral(text);
102
152
  const labelMatch = eq ? `normalize-space(.) = ${lit}` : `contains(normalize-space(.), ${lit})`;
103
- // Inputs referenced by @for, or wrapped controls
104
- const byFor = `//*[@id=//label[${labelMatch}]/@for]`;
105
- const wrapped = `//label[${labelMatch}]//*[self::input or self::textarea or self::select]`;
153
+ // Inputs referenced by @for, or wrapped controls. The outer step of each
154
+ // branch is `.//` so the *returned element* is always scoped to the
155
+ // parent context. The `@for` branch's inner `//label` lookup stays
156
+ // document-rooted on purpose: inside a predicate, `.` rebinds to the
157
+ // candidate `*` node being tested, not the outer scope, so it cannot be
158
+ // scoped without XPath 2.0 variables. In realistic markup the label and
159
+ // its target live in the same container, so this is a narrow, documented
160
+ // approximation rather than the general nested-scope bug.
161
+ const byFor = `.//*[@id=//label[${labelMatch}]/@for]`;
162
+ const wrapped = `.//label[${labelMatch}]//*[self::input or self::textarea or self::select]`;
106
163
  return By.xpath(`(${byFor} | ${wrapped})`);
107
164
  }
108
165
  static placeholder(text, opts) {
109
166
  const eq = opts?.exact !== false;
110
167
  const lit = xpStringLiteral(text);
111
168
  const pred = eq ? `@placeholder = ${lit}` : `contains(@placeholder, ${lit})`;
112
- return By.xpath(`//*[(self::input or self::textarea) and ${pred}]`);
169
+ return By.xpath(`.//*[(self::input or self::textarea) and ${pred}]`);
113
170
  }
114
171
  static altText(text, opts) {
115
172
  const eq = opts?.exact !== false;
116
173
  const lit = xpStringLiteral(text);
117
174
  const pred = eq ? `@alt = ${lit}` : `contains(@alt, ${lit})`;
118
- return By.xpath(`//*[(self::img or self::area or (self::input and @type='image')) and ${pred}]`);
175
+ return By.xpath(`.//*[(self::img or self::area or (self::input and @type='image')) and ${pred}]`);
119
176
  }
120
177
  static title(text, opts) {
121
178
  const eq = opts?.exact !== false;
122
179
  const lit = xpStringLiteral(text);
123
180
  const pred = eq ? `@title = ${lit}` : `contains(@title, ${lit})`;
124
- return By.xpath(`//*[@title and ${pred}]`);
181
+ return By.xpath(`.//*[@title and ${pred}]`);
182
+ }
183
+ // Link-text locators — the native W3C "link text" / "partial link text"
184
+ // location strategies, matching Selenium's By.linkText / By.partialLinkText.
185
+ // Unlike the XPath text helpers these match the browser-computed *rendered*
186
+ // text of `<a>` elements (so CSS text-transform is respected), and they
187
+ // scope correctly under a parent element in find-from-element, since the
188
+ // strategy is resolved by the driver rather than as a document-rooted XPath.
189
+ /** Match an `<a>` whose (trimmed) rendered text exactly equals `text`. */
190
+ static linkText(text) {
191
+ return new By('link text', text);
192
+ }
193
+ /** Match an `<a>` whose (trimmed) rendered text contains `text`. */
194
+ static partialLinkText(text) {
195
+ return new By('partial link text', text);
125
196
  }
126
197
  }
198
+ // True when the candidate has an ancestor that is sectioning content (or
199
+ // carries the explicit-role equivalent) — the condition that strips header/
200
+ // footer of their banner/contentinfo role per HTML-AAM.
201
+ const HAS_SECTIONING_ANCESTOR = 'ancestor::article or ancestor::aside or ancestor::main or ancestor::nav or ancestor::section' +
202
+ ` or ancestor::*[${[
203
+ 'article',
204
+ 'complementary',
205
+ 'main',
206
+ 'navigation',
207
+ 'region',
208
+ ].map(roleTokenEquals).join(' or ')}]`;
209
+ // Implicit ARIA roles for common native elements. Each value is a list of XPath
210
+ // `self::` node tests; an element matches the role if it has `role="<role>"` or
211
+ // satisfies one of these. An approximation of the ARIA-in-HTML mapping covering
212
+ // the roles people actually query — not the full algorithm.
213
+ const IMPLICIT_ROLE_XPATH = {
214
+ button: [
215
+ 'self::button',
216
+ "self::input[@type='button' or @type='submit' or @type='reset' or @type='image']",
217
+ 'self::summary',
218
+ ],
219
+ link: ['self::a[@href]', 'self::area[@href]'],
220
+ checkbox: ["self::input[@type='checkbox']"],
221
+ radio: ["self::input[@type='radio']"],
222
+ searchbox: ["self::input[@type='search']"],
223
+ textbox: [
224
+ 'self::textarea',
225
+ "self::input[not(@type) or @type='text' or @type='email' or @type='tel' or @type='url']",
226
+ ],
227
+ heading: ['self::h1', 'self::h2', 'self::h3', 'self::h4', 'self::h5', 'self::h6'],
228
+ img: ['self::img'],
229
+ list: ['self::ul', 'self::ol'],
230
+ listitem: ['self::li'],
231
+ table: ['self::table'],
232
+ row: ['self::tr'],
233
+ cell: ['self::td'],
234
+ columnheader: ['self::th'],
235
+ navigation: ['self::nav'],
236
+ main: ['self::main'],
237
+ // header/footer are only banner/contentinfo when not nested in sectioning
238
+ // content (article/aside/main/nav/section, or an element with the
239
+ // equivalent explicit role) — per the HTML-AAM mapping.
240
+ banner: [`self::header[not(${HAS_SECTIONING_ANCESTOR})]`],
241
+ contentinfo: [`self::footer[not(${HAS_SECTIONING_ANCESTOR})]`],
242
+ article: ['self::article'],
243
+ // A <select> is combobox unless it's a multi-select or has size > 1, in
244
+ // which case its implicit role is listbox (HTML-AAM).
245
+ combobox: ["self::select[not(@multiple) and (not(@size) or number(@size) <= 1)]"],
246
+ listbox: ['self::select[@multiple or (@size and number(@size) > 1)]'],
247
+ };
127
248
  // Helpers
128
249
  function cssEscape(s) {
129
250
  // Minimal escape for quotes and backslashes in our usage
@@ -147,4 +268,7 @@ function normalizeSpaceLiteral(s) {
147
268
  function toLower(expr) {
148
269
  return `translate(${expr}, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')`;
149
270
  }
271
+ function roleTokenEquals(role) {
272
+ return `substring-before(concat(normalize-space(@role), ' '), ' ') = ${xpStringLiteral(role)}`;
273
+ }
150
274
  //# sourceMappingURL=by.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"by.js","sourceRoot":"","sources":["../../src/lib/by.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"by.js","sourceRoot":"","sources":["../../src/lib/by.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,26 @@ export type ChromeServiceOptions = Omit<DriverServiceOptions, 'command'> & {
4
4
  * Absolute path to a `chromedriver` binary.
5
5
  * When omitted, craftdriver resolves the driver automatically:
6
6
  * 1. CRAFTDRIVER_DRIVER_PATH / CHROMEDRIVER_PATH / SE_CHROMEDRIVER env vars
7
- * 2. node_modules/.bin/chromedriver (if chromedriver npm package is installed)
8
- * 3. chromedriver on PATH
9
- * 4. Detect system Chrome version → download matching chromedriver from CfT
7
+ * 2. Known CI-provided driver directories (e.g. GitHub Actions' CHROMEWEBDRIVER)
8
+ * 3. node_modules/.bin/chromedriver (if chromedriver npm package is installed)
9
+ * 4. chromedriver on PATH
10
+ * 5. Detect system Chrome version → download matching chromedriver from CfT
10
11
  */
11
12
  binaryPath?: string;
13
+ /**
14
+ * A custom **browser** binary — Chrome or Chromium — distinct from
15
+ * `binaryPath` above (which names the *driver*). Not sent to the driver
16
+ * directly; used only so that if `binaryPath` is omitted and chromedriver
17
+ * has to be auto-downloaded, its version is detected from this binary
18
+ * instead of probing for system Chrome. To actually launch this binary,
19
+ * also set `LaunchOptions.browserPath` (or the `CRAFTDRIVER_CHROME_PATH`
20
+ * / `CHROME_BIN` env vars) — see docs/driver-configuration.md.
21
+ */
22
+ browserPath?: string;
12
23
  };
13
24
  export declare class ChromeService extends DriverService {
14
25
  private readonly binaryPath;
26
+ private readonly browserPath;
15
27
  constructor(options?: ChromeServiceOptions);
16
28
  start(): Promise<void>;
17
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/lib/chrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGxE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG;IACzE;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAEpC,OAAO,GAAE,oBAAyB;IAYxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}
1
+ {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/lib/chrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGxE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG;IACzE;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,OAAO,GAAE,oBAAyB;IAaxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}
@@ -2,8 +2,9 @@ import { DriverService } from './service.js';
2
2
  import { resolveChromeDriver } from './driverManager.js';
3
3
  export class ChromeService extends DriverService {
4
4
  binaryPath;
5
+ browserPath;
5
6
  constructor(options = {}) {
6
- const { binaryPath, ...rest } = options;
7
+ const { binaryPath, browserPath, ...rest } = options;
7
8
  // Pass a placeholder command; the real path is resolved asynchronously in start().
8
9
  super({
9
10
  command: binaryPath ?? 'chromedriver',
@@ -12,11 +13,12 @@ export class ChromeService extends DriverService {
12
13
  ...rest,
13
14
  });
14
15
  this.binaryPath = binaryPath;
16
+ this.browserPath = browserPath;
15
17
  }
16
18
  async start() {
17
19
  if (this.proc)
18
20
  return;
19
- this.opts.command = await resolveChromeDriver({ binaryPath: this.binaryPath });
21
+ this.opts.command = await resolveChromeDriver({ binaryPath: this.binaryPath, browserPath: this.browserPath });
20
22
  await super.start();
21
23
  }
22
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/lib/chrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAczD,MAAM,OAAO,aAAc,SAAQ,aAAa;IAC7B,UAAU,CAAqB;IAEhD,YAAY,UAAgC,EAAE;QAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QACxC,mFAAmF;QACnF,KAAK,CAAC;YACJ,OAAO,EAAE,UAAU,IAAI,cAAc;YACrC,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,SAAS;YACxB,GAAG,IAAI;SACR,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,mBAAmB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/E,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
1
+ {"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/lib/chrome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAyBzD,MAAM,OAAO,aAAc,SAAQ,aAAa;IAC7B,UAAU,CAAqB;IAC/B,WAAW,CAAqB;IAEjD,YAAY,UAAgC,EAAE;QAC5C,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QACrD,mFAAmF;QACnF,KAAK,CAAC;YACJ,OAAO,EAAE,UAAU,IAAI,cAAc;YACrC,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,SAAS;YACxB,GAAG,IAAI;SACR,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,mBAAmB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9G,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
@@ -5,6 +5,8 @@
5
5
  * 1. options.binaryPath (explicit)
6
6
  * 2. CRAFTDRIVER_DRIVER_PATH
7
7
  * 3. Legacy env vars (CHROMEDRIVER_PATH, SE_CHROMEDRIVER, etc.)
8
+ * 3.5. Known CI-provided driver directories (e.g. GitHub Actions'
9
+ * CHROMEWEBDRIVER / GECKOWEBDRIVER)
8
10
  * 4. node_modules/.bin/chromedriver|geckodriver
9
11
  * 5. PATH probe
10
12
  * [CRAFTDRIVER_OFFLINE → throw here if no match yet]
@@ -13,6 +15,10 @@
13
15
  * Only the driver binary is downloaded by default, never the browser itself.
14
16
  * This avoids CfT's OS-dependency problems on lean Linux containers.
15
17
  * See research/driver-manager.md for the full strategy.
18
+ *
19
+ * A separate, independent chain resolves a custom **browser** binary (Chrome/
20
+ * Chromium/Firefox) — see `resolveBrowserBinaryPath()` below. It's opt-in
21
+ * only: nothing resolving there changes any of the above.
16
22
  */
17
23
  /**
18
24
  * Drop the cached chromedriver resolution if it points at `driverPath`.
@@ -20,9 +26,34 @@
20
26
  * only the "reuse this path without re-detecting Chrome" metadata is cleared.
21
27
  */
22
28
  export declare function invalidateChromeDriverAutoResolutionCache(driverPath?: string): boolean;
29
+ /**
30
+ * Resolves a custom **browser** binary (Chrome/Chromium/Firefox) — distinct
31
+ * from `resolveChromeDriver`/`resolveFirefoxDriver`, which resolve the
32
+ * *driver* (chromedriver/geckodriver). Returns `undefined` when
33
+ * nothing resolves, in which case the caller forwards nothing and
34
+ * chromedriver/geckodriver fall back to their own built-in browser discovery
35
+ * (craftdriver's zero-config default, unchanged).
36
+ *
37
+ * Resolution chain (first match wins), each step validated with
38
+ * `fs.existsSync` — an invalid path falls through rather than being forwarded:
39
+ * 1. `explicitPath` (e.g. LaunchOptions.browserPath)
40
+ * 2. CRAFTDRIVER_CHROME_PATH / CRAFTDRIVER_FIREFOX_PATH (browser-specific)
41
+ * 3. CRAFTDRIVER_BROWSER_PATH (generic fallback, either browser)
42
+ * 4. Legacy/compatible env vars: CHROME_BIN / FIREFOX_BIN (community
43
+ * convention), SE_CHROME_PATH / SE_FIREFOX_PATH (Selenium Manager)
44
+ */
45
+ export declare function resolveBrowserBinaryPath(kind: 'chrome' | 'firefox', explicitPath?: string): string | undefined;
23
46
  /** Resolves the path to a chromedriver binary, downloading if necessary. */
24
47
  export declare function resolveChromeDriver(options?: {
25
48
  binaryPath?: string;
49
+ /**
50
+ * A custom browser binary (see {@link resolveBrowserBinaryPath}). When the
51
+ * driver itself has to be auto-downloaded (step 8), its version is detected
52
+ * from *this* binary instead of the system Chrome candidate list — so a
53
+ * custom Chromium build (whose version routinely doesn't match system
54
+ * Chrome) gets a matching chromedriver, not the wrong one.
55
+ */
56
+ browserPath?: string;
26
57
  }): Promise<string>;
27
58
  /** Resolves the path to a geckodriver binary, downloading if necessary. */
28
59
  export declare function resolveFirefoxDriver(options?: {
@@ -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;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"}
1
+ {"version":3,"file":"driverManager.d.ts","sourceRoot":"","sources":["../../src/lib/driverManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAoEH;;;;GAIG;AACH,wBAAgB,yCAAyC,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAuBtF;AA0XD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,GAAG,SAAS,EAC1B,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,GAAG,SAAS,CA0BpB;AAED,4EAA4E;AAC5E,wBAAsB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2FlB;AAED,2EAA2E;AAC3E,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyElB"}
@@ -5,6 +5,8 @@
5
5
  * 1. options.binaryPath (explicit)
6
6
  * 2. CRAFTDRIVER_DRIVER_PATH
7
7
  * 3. Legacy env vars (CHROMEDRIVER_PATH, SE_CHROMEDRIVER, etc.)
8
+ * 3.5. Known CI-provided driver directories (e.g. GitHub Actions'
9
+ * CHROMEWEBDRIVER / GECKOWEBDRIVER)
8
10
  * 4. node_modules/.bin/chromedriver|geckodriver
9
11
  * 5. PATH probe
10
12
  * [CRAFTDRIVER_OFFLINE → throw here if no match yet]
@@ -13,6 +15,10 @@
13
15
  * Only the driver binary is downloaded by default, never the browser itself.
14
16
  * This avoids CfT's OS-dependency problems on lean Linux containers.
15
17
  * See research/driver-manager.md for the full strategy.
18
+ *
19
+ * A separate, independent chain resolves a custom **browser** binary (Chrome/
20
+ * Chromium/Firefox) — see `resolveBrowserBinaryPath()` below. It's opt-in
21
+ * only: nothing resolving there changes any of the above.
16
22
  */
17
23
  import fs from 'fs';
18
24
  import path from 'path';
@@ -403,6 +409,53 @@ async function downloadGeckodriver() {
403
409
  return driverBin;
404
410
  }
405
411
  // ─── Public API ───────────────────────────────────────────────────────────────
412
+ // CI platforms that pre-install a version-matched driver and publish its
413
+ // directory via an env var. Not craftdriver-specific — these are the
414
+ // platform's own convention — so this step ranks below explicit config
415
+ // (steps 1-3) and only fills a gap when nothing more specific was set.
416
+ // Confirmed present with matching semantics on GitHub Actions' Ubuntu, macOS,
417
+ // and Windows runner images (see actions/runner-images per-image READMEs).
418
+ const CHROME_CI_DIR_ENV_VARS = ['CHROMEWEBDRIVER']; // GitHub Actions
419
+ const GECKO_CI_DIR_ENV_VARS = ['GECKOWEBDRIVER']; // GitHub Actions
420
+ /**
421
+ * Resolves a custom **browser** binary (Chrome/Chromium/Firefox) — distinct
422
+ * from `resolveChromeDriver`/`resolveFirefoxDriver`, which resolve the
423
+ * *driver* (chromedriver/geckodriver). Returns `undefined` when
424
+ * nothing resolves, in which case the caller forwards nothing and
425
+ * chromedriver/geckodriver fall back to their own built-in browser discovery
426
+ * (craftdriver's zero-config default, unchanged).
427
+ *
428
+ * Resolution chain (first match wins), each step validated with
429
+ * `fs.existsSync` — an invalid path falls through rather than being forwarded:
430
+ * 1. `explicitPath` (e.g. LaunchOptions.browserPath)
431
+ * 2. CRAFTDRIVER_CHROME_PATH / CRAFTDRIVER_FIREFOX_PATH (browser-specific)
432
+ * 3. CRAFTDRIVER_BROWSER_PATH (generic fallback, either browser)
433
+ * 4. Legacy/compatible env vars: CHROME_BIN / FIREFOX_BIN (community
434
+ * convention), SE_CHROME_PATH / SE_FIREFOX_PATH (Selenium Manager)
435
+ */
436
+ export function resolveBrowserBinaryPath(kind, explicitPath) {
437
+ if (explicitPath) {
438
+ if (fs.existsSync(explicitPath))
439
+ return explicitPath;
440
+ // A candidate was actually supplied here, so a silent fallthrough would
441
+ // hide a typo behind a browser that quietly launches from somewhere else
442
+ // entirely. Everything below the auto-download path already announces
443
+ // itself the same way (see downloadChromedriver/downloadGeckodriver).
444
+ process.stderr.write(`[craftdriver] browserPath "${explicitPath}" does not exist; falling back to the next resolution step.\n`);
445
+ }
446
+ const specificEnvVar = kind === 'chrome' ? 'CRAFTDRIVER_CHROME_PATH' : 'CRAFTDRIVER_FIREFOX_PATH';
447
+ const legacyBinEnvVar = kind === 'chrome' ? 'CHROME_BIN' : 'FIREFOX_BIN';
448
+ const legacySeEnvVar = kind === 'chrome' ? 'SE_CHROME_PATH' : 'SE_FIREFOX_PATH';
449
+ for (const envVar of [specificEnvVar, 'CRAFTDRIVER_BROWSER_PATH', legacyBinEnvVar, legacySeEnvVar]) {
450
+ const p = process.env[envVar];
451
+ if (!p)
452
+ continue;
453
+ if (fs.existsSync(p))
454
+ return p;
455
+ process.stderr.write(`[craftdriver] ${envVar}="${p}" does not exist; falling back to the next resolution step.\n`);
456
+ }
457
+ return undefined;
458
+ }
406
459
  /** Resolves the path to a chromedriver binary, downloading if necessary. */
407
460
  export async function resolveChromeDriver(options) {
408
461
  // 1. Explicit constructor argument.
@@ -421,6 +474,20 @@ export async function resolveChromeDriver(options) {
421
474
  if (p && fs.existsSync(p))
422
475
  return p;
423
476
  }
477
+ // 3.5. Known CI-provided driver directories (e.g. GitHub Actions'
478
+ // CHROMEWEBDRIVER). Cheaper than a cache read (fs.existsSync) and a
479
+ // stronger signal than anything below: the CI platform vendor
480
+ // guarantees this driver matches the pre-installed browser version.
481
+ // Not cached — it's already as cheap as a cache read, so caching it
482
+ // would only add stale-path risk for no benefit.
483
+ for (const envVar of CHROME_CI_DIR_ENV_VARS) {
484
+ const dir = process.env[envVar];
485
+ if (!dir)
486
+ continue;
487
+ const candidate = path.join(dir, driverBinName());
488
+ if (fs.existsSync(candidate))
489
+ return candidate;
490
+ }
424
491
  // 4. Auto-resolution cache. Once we've auto-resolved a chromedriver (step 7
425
492
  // below), reuse it for a TTL window instead of re-probing PATH (a blocking
426
493
  // `which` spawn, ~80ms) and re-launching Chrome to read its version
@@ -448,14 +515,24 @@ export async function resolveChromeDriver(options) {
448
515
  throw new Error('CRAFTDRIVER_OFFLINE is set and no chromedriver was found.\n' +
449
516
  'Set CRAFTDRIVER_DRIVER_PATH to a local chromedriver binary.');
450
517
  }
451
- // 8. Detect system Chrome + download matching driver from CfT, then record
452
- // the result in the auto-resolution cache read at step 4.
518
+ // 8. Detect the browser + download a matching driver from CfT, then record
519
+ // the result in the auto-resolution cache read at step 4. If a custom
520
+ // browser binary was given, detect its version directly instead of
521
+ // probing the system Chrome candidate list (see resolveChromeDriver's
522
+ // `browserPath` option doc). This assumes the binary answers `--version`
523
+ // the way Chrome/Chromium does — untested against anything that doesn't
524
+ // (e.g. Electron), so `browserPath` is documented as Chrome/Chromium-only
525
+ // for now.
453
526
  const p = os.platform();
454
- const candidates = CHROME_CANDIDATES[p] ?? ['google-chrome'];
527
+ const candidates = options?.browserPath ? [options.browserPath] : (CHROME_CANDIDATES[p] ?? ['google-chrome']);
455
528
  const detected = detectBrowserVersion(candidates);
456
529
  if (!detected) {
457
- throw new Error('Could not detect a system Chrome or Chromium installation.\n' +
458
- 'Install Chrome, or set CRAFTDRIVER_DRIVER_PATH to a local chromedriver binary.');
530
+ throw new Error(options?.browserPath
531
+ ? `Could not read a Chrome/Chromium version from browserPath "${options.browserPath}" ` +
532
+ '(it did not respond to --version the way Chrome/Chromium does).\n' +
533
+ 'Set CRAFTDRIVER_CHROMEDRIVER_PATH to a chromedriver binary that matches it instead of relying on auto-detection.'
534
+ : 'Could not detect a system Chrome or Chromium installation.\n' +
535
+ 'Install Chrome, or set CRAFTDRIVER_DRIVER_PATH to a local chromedriver binary.');
459
536
  }
460
537
  const driverPath = await downloadChromedriver(detected.version);
461
538
  // Refresh TTL record regardless of whether we downloaded a new binary.
@@ -480,6 +557,17 @@ export async function resolveFirefoxDriver(options) {
480
557
  if (p && fs.existsSync(p))
481
558
  return p;
482
559
  }
560
+ // 3.5. Known CI-provided driver directories (e.g. GitHub Actions'
561
+ // GECKOWEBDRIVER). See resolveChromeDriver's equivalent step for why
562
+ // this ranks here and isn't cached.
563
+ for (const envVar of GECKO_CI_DIR_ENV_VARS) {
564
+ const dir = process.env[envVar];
565
+ if (!dir)
566
+ continue;
567
+ const candidate = path.join(dir, geckoBinName());
568
+ if (fs.existsSync(candidate))
569
+ return candidate;
570
+ }
483
571
  // 4. Auto-resolution cache. Once geckodriver has been auto-resolved (step 8
484
572
  // below writes this record), reuse it for a TTL window instead of probing
485
573
  // PATH (a blocking `which` spawn) and re-detecting Firefox on every
@@ -494,8 +582,11 @@ export async function resolveFirefoxDriver(options) {
494
582
  const localBin = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../..', 'node_modules/.bin/geckodriver');
495
583
  if (fs.existsSync(localBin))
496
584
  return localBin;
497
- // 6. PATH probe.
498
- if (commandOnPath('geckodriver'))
585
+ // 6. PATH probe (skipped when CRAFTDRIVER_SKIP_PATH_PROBE is set, e.g. in
586
+ // integration tests that need to exercise the auto-download path even on
587
+ // systems where geckodriver is already installed). Mirrors
588
+ // resolveChromeDriver's equivalent step.
589
+ if (!process.env.CRAFTDRIVER_SKIP_PATH_PROBE && commandOnPath('geckodriver'))
499
590
  return 'geckodriver';
500
591
  // 7. Offline guard.
501
592
  if (process.env.CRAFTDRIVER_OFFLINE) {
@@ -1 +1 @@
1
- {"version":3,"file":"driverManager.js","sourceRoot":"","sources":["../../src/lib/driverManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driverManager.js","sourceRoot":"","sources":["../../src/lib/driverManager.ts"],"names":[],"mappings":"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"}