sefiutils 1.0.51 → 1.0.54

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/lib/seUtils.js CHANGED
@@ -35,7 +35,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.editDistance = exports.getInputElementByLabel = exports.findBestMatchingIndex = exports.scoreCandidate = exports.scrollIntoViewAndClick = exports.findSubmitButton = exports.findButtonOrHref = exports.findButtonOrHRefWithText = exports.getButtonsAndHRefs = exports.getAllTextNodes = exports.getInheritedColorsByJS = exports.getInheritedBackgroundColorsByJS = exports.setViewPortSize = exports.setBrowserWindowSize = exports.isInViewPort = exports.getViewPortSize = exports.getInnerSizeOfWindow = exports.getComputedStyles = exports.getDocumentTextContent = exports.getTextContents = exports.getRectsOfContent = exports.getRects = exports.getNodeContentsRects = exports.getNodeContentsRect = exports.getBoundingClientRects = exports.getBoundingClientRect = exports.getElementContainingText = exports.getElementsByTags = exports.getElementsByTag = exports.getElementByTag = exports.getElementsByClass = exports.getElementByClass = exports.getElementById = exports.describe = exports.saveScreenshot = exports.waitFor = exports.circa = exports.toFloor = exports.boundsToString = exports.execScript = exports.cmpStrings = exports.getRemoteAddressAndPort = void 0;
38
+ exports.getRemoteAddressAndPort = getRemoteAddressAndPort;
39
+ exports.cmpStrings = cmpStrings;
40
+ exports.execScript = execScript;
41
+ exports.boundsToString = boundsToString;
42
+ exports.toFloor = toFloor;
43
+ exports.circa = circa;
44
+ exports.waitFor = waitFor;
45
+ exports.saveScreenshot = saveScreenshot;
46
+ exports.describe = describe;
47
+ exports.getElementById = getElementById;
48
+ exports.getElementByClass = getElementByClass;
49
+ exports.getElementsByClass = getElementsByClass;
50
+ exports.getElementByTag = getElementByTag;
51
+ exports.getElementsByTag = getElementsByTag;
52
+ exports.getElementsByTags = getElementsByTags;
53
+ exports.getElementContainingText = getElementContainingText;
54
+ exports.getBoundingClientRect = getBoundingClientRect;
55
+ exports.getBoundingClientRects = getBoundingClientRects;
56
+ exports.getNodeContentsRect = getNodeContentsRect;
57
+ exports.getNodeContentsRects = getNodeContentsRects;
58
+ exports.getRects = getRects;
59
+ exports.getRectsOfContent = getRectsOfContent;
60
+ exports.getTextContents = getTextContents;
61
+ exports.getDocumentTextContent = getDocumentTextContent;
62
+ exports.getComputedStyles = getComputedStyles;
63
+ exports.getInnerSizeOfWindow = getInnerSizeOfWindow;
64
+ exports.getViewPortSize = getViewPortSize;
65
+ exports.isInViewPort = isInViewPort;
66
+ exports.setBrowserWindowSize = setBrowserWindowSize;
67
+ exports.setViewPortSize = setViewPortSize;
68
+ exports.getInheritedBackgroundColorsByJS = getInheritedBackgroundColorsByJS;
69
+ exports.getInheritedColorsByJS = getInheritedColorsByJS;
70
+ exports.getAllTextNodes = getAllTextNodes;
71
+ exports.getButtonsAndHRefs = getButtonsAndHRefs;
72
+ exports.findButtonOrHRefWithText = findButtonOrHRefWithText;
73
+ exports.findButtonOrHref = findButtonOrHref;
74
+ exports.findSubmitButton = findSubmitButton;
75
+ exports.scrollIntoViewAndClick = scrollIntoViewAndClick;
76
+ exports.scoreCandidate = scoreCandidate;
77
+ exports.findBestMatchingIndex = findBestMatchingIndex;
78
+ exports.getInputElementByLabel = getInputElementByLabel;
79
+ exports.editDistance = editDistance;
80
+ exports.equalWebElements = equalWebElements;
39
81
  /**
40
82
  * (C) Jens von Pilgrim, 2023
41
83
  */
@@ -51,7 +93,6 @@ function getRemoteAddressAndPort() {
51
93
  const port = Number(((_a = address.match(/:(\d+)\/?/)) === null || _a === void 0 ? void 0 : _a[1]) || 80);
52
94
  return { address, port };
53
95
  }
54
- exports.getRemoteAddressAndPort = getRemoteAddressAndPort;
55
96
  /**
56
97
  * Compares a given string with either a string or a regex.
57
98
  * @param str string to compare
@@ -73,7 +114,6 @@ function cmpStrings(str, stringOrRegEx, options) {
73
114
  ? str.toLocaleLowerCase() === stringOrRegEx.toLocaleLowerCase()
74
115
  : str === stringOrRegEx;
75
116
  }
76
- exports.cmpStrings = cmpStrings;
77
117
  function execScript(driver, scriptName, fct) {
78
118
  return __awaiter(this, void 0, void 0, function* () {
79
119
  const scriptPath = path_1.default.join(path_1.default.dirname(__filename), scriptName);
@@ -84,11 +124,9 @@ function execScript(driver, scriptName, fct) {
84
124
  return res;
85
125
  });
86
126
  }
87
- exports.execScript = execScript;
88
127
  function boundsToString(bounds) {
89
128
  return `(${bounds.left};${bounds.top})x(${bounds.right};${bounds.bottom})`;
90
129
  }
91
- exports.boundsToString = boundsToString;
92
130
  function toFloor(bounds) {
93
131
  const floors = [];
94
132
  for (const b of bounds) {
@@ -101,7 +139,6 @@ function toFloor(bounds) {
101
139
  }
102
140
  return floors;
103
141
  }
104
- exports.toFloor = toFloor;
105
142
  /**
106
143
  * Coordinates are sometimes floats. We compare two numbers with a delta of 1 to ignore rounding problems.
107
144
  */
@@ -109,9 +146,8 @@ function circa(n1, n2) {
109
146
  const delta = n1 - n2;
110
147
  return Math.abs(delta) < 1;
111
148
  }
112
- exports.circa = circa;
113
- function waitFor(callback, timeout = 1000, intervalTime = 100) {
114
- return __awaiter(this, void 0, void 0, function* () {
149
+ function waitFor(callback_1) {
150
+ return __awaiter(this, arguments, void 0, function* (callback, timeout = 1000, intervalTime = 100) {
115
151
  // try first time
116
152
  const start = new Date().getTime();
117
153
  try {
@@ -140,7 +176,6 @@ function waitFor(callback, timeout = 1000, intervalTime = 100) {
140
176
  });
141
177
  });
142
178
  }
143
- exports.waitFor = waitFor;
144
179
  /**
145
180
  * Takes screenshot of current window and saves it to the given file.
146
181
  * The folder is created if it does not yet exists.
@@ -155,7 +190,6 @@ function saveScreenshot(driver, fileName) {
155
190
  yield fsPromises.writeFile(fileName, pngBase64, 'base64');
156
191
  });
157
192
  }
158
- exports.saveScreenshot = saveScreenshot;
159
193
  /**
160
194
  * Helper function for printing out an element (tag, id if present)
161
195
  */
@@ -177,7 +211,6 @@ function describe(we) {
177
211
  return s;
178
212
  });
179
213
  }
180
- exports.describe = describe;
181
214
  /**
182
215
  * Gets the element by means of `WebElement` by its id attribute,
183
216
  * either of the whole document (if driver is given) or of the given parent element.
@@ -188,7 +221,6 @@ function getElementById(driverOrParent, id) {
188
221
  return el;
189
222
  });
190
223
  }
191
- exports.getElementById = getElementById;
192
224
  /**
193
225
  * Gets the first element by means of `WebElement` by its class attribute,
194
226
  * either of the whole document (if driver is given) or of the given parent element.
@@ -199,7 +231,6 @@ function getElementByClass(driverOrParent, clazz) {
199
231
  return el;
200
232
  });
201
233
  }
202
- exports.getElementByClass = getElementByClass;
203
234
  /**
204
235
  * Gets all element by means of `WebElement` by its class attribute,
205
236
  * either of the whole document (if driver is given) or of the given parent element.
@@ -210,7 +241,6 @@ function getElementsByClass(driverOrParent, clazz) {
210
241
  return els;
211
242
  });
212
243
  }
213
- exports.getElementsByClass = getElementsByClass;
214
244
  /**
215
245
  * Gets the first element by means of `WebElement` by its tag name,
216
246
  * either of the whole document (if driver is given) or of the given parent element.
@@ -221,7 +251,6 @@ function getElementByTag(driverOrParent, tagName) {
221
251
  return el;
222
252
  });
223
253
  }
224
- exports.getElementByTag = getElementByTag;
225
254
  /**
226
255
  * Gets all elements by means of `WebElement` by its tag name,
227
256
  * either of the whole document (if driver is given) or of the given parent element.
@@ -232,7 +261,6 @@ function getElementsByTag(driverOrParent, tagName) {
232
261
  return els;
233
262
  });
234
263
  }
235
- exports.getElementsByTag = getElementsByTag;
236
264
  /**
237
265
  * Gets all elements by means of `WebElement` by its tag name,
238
266
  * either of the whole document (if driver is given) or of the given parent element.
@@ -247,7 +275,6 @@ function getElementsByTags(driverOrParent, tagNames) {
247
275
  return els;
248
276
  });
249
277
  }
250
- exports.getElementsByTags = getElementsByTags;
251
278
  /**
252
279
  * Returns first element containing given text or undefined,
253
280
  * either of the whole document (if driver is given) or of the given parent element.
@@ -267,7 +294,6 @@ function getElementContainingText(driverOrParent, text) {
267
294
  }
268
295
  });
269
296
  }
270
- exports.getElementContainingText = getElementContainingText;
271
297
  /**
272
298
  * Returns the bounding client rect (the bounding box relative to the viewport)
273
299
  * of an element (found by its id attribute) by means of a JavaScript call.
@@ -278,7 +304,6 @@ function getBoundingClientRect(driver, id) {
278
304
  return bcr;
279
305
  });
280
306
  }
281
- exports.getBoundingClientRect = getBoundingClientRect;
282
307
  /**
283
308
  * Returns all {@link getBoundingClientRect} values of the elements
284
309
  * found in the given element list.
@@ -298,7 +323,6 @@ function getBoundingClientRects(driver, jsElementList) {
298
323
  return bcr;
299
324
  });
300
325
  }
301
- exports.getBoundingClientRects = getBoundingClientRects;
302
326
  /**
303
327
  * Returns the node content's rect, in particular of the text, of a element with the given id.
304
328
  */
@@ -312,7 +336,6 @@ function getNodeContentsRect(driver, id) {
312
336
  return bcr;
313
337
  });
314
338
  }
315
- exports.getNodeContentsRect = getNodeContentsRect;
316
339
  /**
317
340
  * Returns the node content's rect, in particular of the text, of multiple elements
318
341
  * (selected via evalutation of the jsElementString).
@@ -332,7 +355,6 @@ function getNodeContentsRects(driver, jsElementList) {
332
355
  return bcr;
333
356
  });
334
357
  }
335
- exports.getNodeContentsRects = getNodeContentsRects;
336
358
  /**
337
359
  * Returns the rects using the driver API.
338
360
  */
@@ -350,7 +372,6 @@ function getRects(driver, locator) {
350
372
  return bounds;
351
373
  });
352
374
  }
353
- exports.getRects = getRects;
354
375
  /**
355
376
  * Returns the rects of the first child (of each found element) using the driver API.
356
377
  */
@@ -368,7 +389,6 @@ function getRectsOfContent(driver, locator) {
368
389
  return bounds;
369
390
  });
370
391
  }
371
- exports.getRectsOfContent = getRectsOfContent;
372
392
  /**
373
393
  * Returns all text content of the elements
374
394
  * found in the given element list.
@@ -390,7 +410,6 @@ function getTextContents(driver, jsElementList) {
390
410
  return tcs;
391
411
  });
392
412
  }
393
- exports.getTextContents = getTextContents;
394
413
  /**
395
414
  * Returns the text content of the whole document.
396
415
  */
@@ -399,7 +418,6 @@ function getDocumentTextContent(driver) {
399
418
  return yield driver.executeScript(`return document.documentElement.textContent`);
400
419
  });
401
420
  }
402
- exports.getDocumentTextContent = getDocumentTextContent;
403
421
  ;
404
422
  /**
405
423
  * Returns all computed styles of the elements
@@ -419,7 +437,6 @@ function getComputedStyles(driver, jsElementList, style) {
419
437
  return tcs;
420
438
  });
421
439
  }
422
- exports.getComputedStyles = getComputedStyles;
423
440
  /**
424
441
  * Returns the inner size of the windows bounding client rect (the bounding box relative to the viewport)
425
442
  * of an element (found by its is attribute) by means of a JavaScript call.
@@ -432,7 +449,6 @@ function getInnerSizeOfWindow(driver) {
432
449
  return { width: w, height: h };
433
450
  });
434
451
  }
435
- exports.getInnerSizeOfWindow = getInnerSizeOfWindow;
436
452
  /**
437
453
  * Returns the viewport size, which is the inner window size but not with the scrollbars.
438
454
  * I.e. the viewport size is a bit smaller than {@link getInnerSizeOfWindow} (if scrollbars are visible).
@@ -447,7 +463,6 @@ function getViewPortSize(driver) {
447
463
  return { width: clientWidthOfHTML, height: clientHeightOfHTML };
448
464
  });
449
465
  }
450
- exports.getViewPortSize = getViewPortSize;
451
466
  /**
452
467
  * Returns true if the element identified by its id attribute is with the view port.
453
468
  * That does not necessarily means that it is visible, since its display or visible attribute may
@@ -465,24 +480,14 @@ function isInViewPort(driver, id) {
465
480
  && bounds.x < x + innerSize.width && bounds.y < y + innerSize.height;
466
481
  });
467
482
  }
468
- exports.isInViewPort = isInViewPort;
469
483
  /**
470
484
  * Sets the window so that the {@link getViewPortSize} matches the given width and height.
471
485
  */
472
486
  function setBrowserWindowSize(driver, width, height) {
473
487
  return __awaiter(this, void 0, void 0, function* () {
474
- // const rect = await driver.manage().window().getRect();
475
488
  yield waitForSetRect(driver, width, height);
476
- // await driver.manage().window().setRect({ width: width, height: height });
477
- // return waitFor(async () => {
478
- // const rectAfter = await driver.manage().window().getRect();
479
- // if (check && (rectAfter.width != width || rectAfter.height != height)) {
480
- // throw new Error(`Cannot set window to size (${width}, ${height}). Size is probably too small or too large, got ${rectAfter.width}/${rectAfter.height}, was before ${rect.width}/${rect.height}.`);
481
- // }
482
- // });
483
489
  });
484
490
  }
485
- exports.setBrowserWindowSize = setBrowserWindowSize;
486
491
  function waitForSetRect(driver, width, height) {
487
492
  return __awaiter(this, void 0, void 0, function* () {
488
493
  const rectBefore = yield driver.manage().window().getRect();
@@ -512,7 +517,6 @@ function setViewPortSize(driver, width, height) {
512
517
  yield waitForSetRect(driver, width + deltaX + sbWidth, height + deltaY + sbHeight);
513
518
  });
514
519
  }
515
- exports.setViewPortSize = setViewPortSize;
516
520
  function getInheritedBackgroundColorsByJS(driver, nodelist) {
517
521
  return __awaiter(this, void 0, void 0, function* () {
518
522
  const colors = yield driver.executeScript(`
@@ -540,7 +544,6 @@ function getInheritedBackgroundColorsByJS(driver, nodelist) {
540
544
  return colors;
541
545
  });
542
546
  }
543
- exports.getInheritedBackgroundColorsByJS = getInheritedBackgroundColorsByJS;
544
547
  function getInheritedColorsByJS(driver, nodelist) {
545
548
  return __awaiter(this, void 0, void 0, function* () {
546
549
  const colors = yield driver.executeScript(`
@@ -568,7 +571,6 @@ function getInheritedColorsByJS(driver, nodelist) {
568
571
  return colors;
569
572
  });
570
573
  }
571
- exports.getInheritedColorsByJS = getInheritedColorsByJS;
572
574
  function rgb2hex(rgba) {
573
575
  return "#" +
574
576
  rgba.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)$/)
@@ -615,7 +617,6 @@ collect(document.body);
615
617
  return res;
616
618
  });
617
619
  }
618
- exports.getAllTextNodes = getAllTextNodes;
619
620
  /**
620
621
  * Retrieves all buttons (element button or input with property submit or button) or anchors with href.
621
622
  * @param driver
@@ -627,7 +628,6 @@ function getButtonsAndHRefs(driver) {
627
628
  return elements;
628
629
  });
629
630
  }
630
- exports.getButtonsAndHRefs = getButtonsAndHRefs;
631
631
  /**
632
632
  * Retrieves a button or link with the given text.
633
633
  * The text is matched case insensitive and may be a substring of the button/link text.
@@ -658,7 +658,6 @@ function findButtonOrHRefWithText(driver, variations) {
658
658
  return undefined;
659
659
  });
660
660
  }
661
- exports.findButtonOrHRefWithText = findButtonOrHRefWithText;
662
661
  /**
663
662
  * Returns a button or href with its text best matching a candidate text.
664
663
  * If there are multiple (submit) buttons, the best one is returned using {@link findBestMatchingIndex}.
@@ -670,8 +669,8 @@ exports.findButtonOrHRefWithText = findButtonOrHRefWithText;
670
669
  * @returns a button or undefined
671
670
  */
672
671
  function findButtonOrHref(driver, textCandidates, regExToApplyToTextBeforeScore) {
673
- var _a, _b;
674
672
  return __awaiter(this, void 0, void 0, function* () {
673
+ var _a, _b;
675
674
  const clickableElements = (yield getButtonsAndHRefs(driver));
676
675
  let bestScore = Number.MAX_SAFE_INTEGER;
677
676
  let bestEl;
@@ -691,7 +690,6 @@ function findButtonOrHref(driver, textCandidates, regExToApplyToTextBeforeScore)
691
690
  return bestEl;
692
691
  });
693
692
  }
694
- exports.findButtonOrHref = findButtonOrHref;
695
693
  /**
696
694
  * Returns a submit button or any other button (if onlySubmit is false).
697
695
  * If there is only one submit button, it is returned.
@@ -703,9 +701,9 @@ exports.findButtonOrHref = findButtonOrHref;
703
701
  * @param onlySubmit only submit buttons are considered, otherwise, all buttons are considered
704
702
  * @returns a button or undefined
705
703
  */
706
- function findSubmitButton(driver, textCandidates, posHint = -1, onlySubmit = true) {
707
- var _a, _b;
708
- return __awaiter(this, void 0, void 0, function* () {
704
+ function findSubmitButton(driver_1, textCandidates_1) {
705
+ return __awaiter(this, arguments, void 0, function* (driver, textCandidates, posHint = -1, onlySubmit = true) {
706
+ var _a, _b;
709
707
  const clickableElements = (yield getButtonsAndHRefs(driver));
710
708
  const candidates = [];
711
709
  const onlySubmitCandidates = [];
@@ -742,7 +740,6 @@ function findSubmitButton(driver, textCandidates, posHint = -1, onlySubmit = tru
742
740
  return candidates[0]; // maybe undefined
743
741
  });
744
742
  }
745
- exports.findSubmitButton = findSubmitButton;
746
743
  /**
747
744
  * Scrolls to the element and clicks it.
748
745
  * If element is not defined, an error is thrown.
@@ -758,7 +755,6 @@ function scrollIntoViewAndClick(element) {
758
755
  yield element.click();
759
756
  });
760
757
  }
761
- exports.scrollIntoViewAndClick = scrollIntoViewAndClick;
762
758
  /**
763
759
  * Only exported for Testing purposes.
764
760
  */
@@ -778,7 +774,6 @@ function scoreCandidate(candidate, variations, caseSensitive) {
778
774
  }
779
775
  return bestDist;
780
776
  }
781
- exports.scoreCandidate = scoreCandidate;
782
777
  /**
783
778
  * Returns best matching candidate index or -1 if none matches.
784
779
  * Best matching means that the text of the candidate is either
@@ -832,7 +827,6 @@ function findBestMatchingIndex(candidates, variations, maxDistance = 2) {
832
827
  }
833
828
  return -1;
834
829
  }
835
- exports.findBestMatchingIndex = findBestMatchingIndex;
836
830
  /**
837
831
  * Returns the best matching input element identified by the given label candidates.
838
832
  * If the label is found, the input element should be either a child of that label or the attribute for and id should be used.
@@ -847,9 +841,9 @@ exports.findBestMatchingIndex = findBestMatchingIndex;
847
841
  * The position is always counting all input elements without regard to the type.
848
842
  * @package findSelectAsWell If true, select elements are also considered; otherwise, only input and textarea elements are considered
849
843
  */
850
- function getInputElementByLabel(driver, labelCandidates, typeHints, positionHint = -1, findSelectAsWell = false) {
851
- var _a;
852
- return __awaiter(this, void 0, void 0, function* () {
844
+ function getInputElementByLabel(driver_1, labelCandidates_1, typeHints_1) {
845
+ return __awaiter(this, arguments, void 0, function* (driver, labelCandidates, typeHints, positionHint = -1, findSelectAsWell = false) {
846
+ var _a;
853
847
  const tagsToFind = ["input", "textarea"];
854
848
  if (findSelectAsWell) {
855
849
  tagsToFind.push("select");
@@ -919,7 +913,6 @@ function getInputElementByLabel(driver, labelCandidates, typeHints, positionHint
919
913
  return undefined;
920
914
  });
921
915
  }
922
- exports.getInputElementByLabel = getInputElementByLabel;
923
916
  // from https://github.com/tj/commander.js/blob/master/lib/suggestSimilar.js
924
917
  function editDistance(a, b, maxDistance) {
925
918
  // https://en.wikipedia.org/wiki/Damerau–Levenshtein_distance
@@ -960,5 +953,26 @@ function editDistance(a, b, maxDistance) {
960
953
  }
961
954
  return d[a.length][b.length];
962
955
  }
963
- exports.editDistance = editDistance;
956
+ /**
957
+ * Returns true if the two web elements are equal, i.e. have the same id or same tag, location, and size.
958
+ */
959
+ function equalWebElements(a, b) {
960
+ return __awaiter(this, void 0, void 0, function* () {
961
+ if (a === b)
962
+ return true;
963
+ if (!a || !b)
964
+ return false;
965
+ const aId = yield a.getId();
966
+ const bId = yield b.getId();
967
+ if (aId)
968
+ return aId === bId;
969
+ const aLocation = yield a.getLocation();
970
+ const bLocation = yield b.getLocation();
971
+ const aSize = yield a.getSize();
972
+ const bSize = yield b.getSize();
973
+ const aTag = yield a.getTagName();
974
+ const bTag = yield b.getTagName();
975
+ return aTag === bTag && aLocation.x === bLocation.x && aLocation.y === bLocation.y && aSize.width === bSize.width && aSize.height === bSize.height;
976
+ });
977
+ }
964
978
  //# sourceMappingURL=seUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"seUtils.js","sourceRoot":"","sources":["../src/seUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seUtils.js","sourceRoot":"","sources":["../src/seUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sefiutils",
3
- "version": "1.0.51",
3
+ "version": "1.0.54",
4
4
  "description": "Utilities (and Jest tests) for Selenium Webdriver Tests and some React tools as well",
5
5
  "author": "Jens von Pilgrim <jens.vonpilgrim@bht-berlin.de>",
6
6
  "license": "EPL-2.0",
@@ -22,18 +22,18 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "dotenv": "^16.4.5",
25
- "geckodriver": "^4.4.2",
26
- "selenium-webdriver": "^4.23.0"
25
+ "geckodriver": "^5.0.0",
26
+ "selenium-webdriver": "^4.26.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@types/jest": "^29.5.12",
30
- "@types/node": "^22.3.0",
31
- "@types/selenium-webdriver": "^4.1.25",
29
+ "@types/jest": "^29.5.14",
30
+ "@types/node": "^22.9.0",
31
+ "@types/selenium-webdriver": "^4.1.27",
32
32
  "copyfiles": "^2.4.1",
33
33
  "jest": "^29.7.0",
34
34
  "jest-junit": "^16.0.0",
35
35
  "rimraf": "^6.0.1",
36
- "ts-jest": "^29.2.4",
37
- "typescript": "^5.5.4"
36
+ "ts-jest": "^29.2.5",
37
+ "typescript": "^5.6.3"
38
38
  }
39
39
  }
@@ -1,15 +1,16 @@
1
1
  import dotenv from "dotenv";
2
2
  dotenv.config() // read ".env"
3
3
 
4
- import path from "path";
5
4
  import fs, { writeFileSync } from "fs";
5
+ import { stat } from "fs/promises";
6
+ import { homedir } from "os";
7
+ import path from "path";
6
8
  import { debug, verbose } from "./log";
7
9
  import { getRemoteAddressAndPort } from "./seUtils";
8
- import { homedir } from "os";
9
10
 
10
11
  declare global {
11
12
  var server: any; // only loaded in remote case; this global variable is only visible in globalTeardown.ts
12
- // and not in the tests, cf. https://jestjs.io/docs/configuration#globalsetup-string
13
+ // and not in the tests, cf. https://jestjs.io/docs/configuration#globalsetup-string
13
14
  }
14
15
  /**
15
16
  * This function is called by Jest once before all tests are executed.
@@ -35,9 +36,9 @@ export default async function setGlobalObjects() {
35
36
  try {
36
37
  if (browser === "remote") {
37
38
  await setUpSeleniumServer();
38
- }
39
+ }
39
40
  } catch (err) {
40
- console.error(`Error setting up server: ${err}`);
41
+ console.error(`Error setting up server for browser ${browser}: ${err}`);
41
42
  throw err;
42
43
  }
43
44
  }
@@ -63,10 +64,10 @@ export async function getSeleniumServerJar() {
63
64
  const homeDir = process.env.SEFI_SELENIUM_CACHE_FOLDER || homedir();
64
65
  const cachedPath = path.resolve(path.join(homeDir, ".cache", "selenium-server", jarName));
65
66
  verbose(`Selenium server jar: ${cachedPath}`);
66
- if (! fs.existsSync(cachedPath)) {
67
- if (! fs.existsSync(path.dirname(cachedPath))) {
68
- fs.mkdirSync(path.dirname(cachedPath), {recursive: true});
69
- }
67
+ if (!fs.existsSync(cachedPath)) {
68
+ if (!fs.existsSync(path.dirname(cachedPath))) {
69
+ fs.mkdirSync(path.dirname(cachedPath), { recursive: true });
70
+ }
70
71
  const downloadURL = process.env.SEFI_SELENIUM_SERVER_DOWNLOAD_URL || "https://github.com/SeleniumHQ/selenium/releases/download";
71
72
  const url = `${downloadURL}/selenium-${versionParts[0]}.${versionParts[1]}.0/${jarName}`;
72
73
  console.log(`Download ${url} to ${cachedPath}`);
@@ -87,7 +88,7 @@ export async function getSeleniumServerJar() {
87
88
  async function setUpSeleniumServer() {
88
89
  debug("Dynamic import of selenium-webdriver/remote")
89
90
  const remote = await import("selenium-webdriver/remote");
90
-
91
+
91
92
  const jarPath = await getSeleniumServerJar();
92
93
 
93
94
  if (globalThis.server) {
@@ -95,9 +96,9 @@ async function setUpSeleniumServer() {
95
96
  verbose("`Server killed before starting again");
96
97
  }
97
98
 
98
- const { port} = getRemoteAddressAndPort();
99
+ const { port } = getRemoteAddressAndPort();
99
100
 
100
- debug(()=>`Start selenium server at port ${port} with SE_NODE_MAX_SESSIONS=4, SE_NODE_OVERRIDE_MAX_SESSIONS=true`);
101
+ debug(() => `Start selenium server at port ${port} with SE_NODE_MAX_SESSIONS=4, SE_NODE_OVERRIDE_MAX_SESSIONS=true`);
101
102
  const s = new remote.SeleniumServer(jarPath, {
102
103
  port: port,
103
104
  env: {
@@ -107,10 +108,25 @@ async function setUpSeleniumServer() {
107
108
  // "JAVA_OPTS": "-XX:ActiveProcessorCount=4"
108
109
  }
109
110
  });
110
-
111
+
111
112
  const timeout = parseInt(process.env.SEFI_SELENIUM_SERVER_START_TIMEOUT || "5000");
112
- const actualAddress = await s.start(timeout);
113
- globalThis.server = s;
114
- // const address = await globalThis.server.address()
115
- debug(()=>`Selenium server started at: ${actualAddress}`);
113
+ debug(() => `Selenium server created, start server with timeout ${timeout}`);
114
+ try {
115
+ const actualAddress = await s.start(timeout);
116
+ globalThis.server = s;
117
+ // const address = await globalThis.server.address()
118
+ debug(() => `Selenium server started at: ${actualAddress}`);
119
+ } catch (err) {
120
+ try {
121
+ const geckoPath = require.resolve("geckodriver");
122
+ await stat(geckoPath);
123
+ if (! geckoPath.startsWith(process.cwd())) {
124
+ console.error(`geckodriver found at ${geckoPath}, but not in project directory, try to install it with 'npm i -D geckodriver'`);
125
+ }
126
+ } catch (err) {
127
+ console.error("geckodriver not found, please install it with 'npm i -D geckodriver'");
128
+ }
129
+
130
+ throw err;
131
+ }
116
132
  }