@serenity-js/webdriverio-8 3.31.8 → 3.31.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.31.10](https://github.com/serenity-js/serenity-js/compare/v3.31.9...v3.31.10) (2025-03-05)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **deps:** update dependency axios to v1.8.1 ([0ec3014](https://github.com/serenity-js/serenity-js/commit/0ec3014baa55dc39cdd6a907d268ef806173d272))
12
+
13
+
14
+
15
+
16
+
17
+ ## [3.31.9](https://github.com/serenity-js/serenity-js/compare/v3.31.8...v3.31.9) (2025-02-20)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **webdriverio-8:** handle windows and tabs closed by JavaScript ([#2745](https://github.com/serenity-js/serenity-js/issues/2745)) ([a8c50c7](https://github.com/serenity-js/serenity-js/commit/a8c50c74a273ed31a0b0bd7794450813fd3a683c))
23
+
24
+
25
+
26
+
27
+
6
28
  ## [3.31.8](https://github.com/serenity-js/serenity-js/compare/v3.31.7...v3.31.8) (2025-02-04)
7
29
 
8
30
  **Note:** Version bump only for package @serenity-js/webdriverio-8
@@ -1 +1 @@
1
- {"version":3,"file":"WebdriverIOBrowsingSession.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrD;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe,CAAC,eAAe,CAAC;IAEhE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO;gBAA5B,OAAO,EAAE,WAAW,CAAC,OAAO;IAQ5C,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IA8B1D;;OAEG;IACY,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAoB1D,kBAAkB;IAmBjB,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;cAwB7B,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC;YAkB1D,qBAAqB;YAMrB,gBAAgB;IAwBrB,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAG/D"}
1
+ {"version":3,"file":"WebdriverIOBrowsingSession.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrD;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe,CAAC,eAAe,CAAC;IAEhE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO;gBAA5B,OAAO,EAAE,WAAW,CAAC,OAAO;IAQ5C,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IA8B1D;;OAEG;IACY,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAoB1D,kBAAkB;IAqCjB,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;cAwB7B,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC;YAkB1D,qBAAqB;YAMrB,gBAAgB;IAwBrB,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAG/D"}
@@ -55,21 +55,33 @@ export class WebdriverIOBrowsingSession extends BrowsingSession {
55
55
  await super.changeCurrentPageTo(page);
56
56
  }
57
57
  async activeWindowHandle() {
58
+ let thrown;
59
+ let handle;
60
+ let windowAlreadyClosed = false;
58
61
  try {
59
- return await this.browser.getWindowHandle();
62
+ handle = await this.browser.getWindowHandle();
60
63
  }
61
64
  catch (error) {
65
+ thrown = error;
62
66
  // If the window is closed by user action Webdriver will still hold the reference to the closed window.
63
- if (['NoSuchWindowError', 'no such window'].includes(error.name)) {
64
- const allHandles = await this.browser.getWindowHandles();
65
- if (allHandles.length > 0) {
66
- const handle = allHandles.at(-1);
67
- await this.browser.switchToWindow(handle);
68
- return handle;
69
- }
67
+ windowAlreadyClosed = ['NoSuchWindowError', 'no such window'].includes(error.name);
68
+ }
69
+ // Handle can be `null` for windows closed by JavaScript
70
+ if (handle) {
71
+ return handle;
72
+ }
73
+ if (!handle || windowAlreadyClosed) {
74
+ const allHandles = await this.browser.getWindowHandles();
75
+ if (allHandles.length > 0) {
76
+ const fallbackHandle = allHandles.at(-1);
77
+ await this.browser.switchToWindow(fallbackHandle);
78
+ return fallbackHandle;
70
79
  }
71
- throw error;
72
80
  }
81
+ if (thrown) {
82
+ throw thrown;
83
+ }
84
+ throw new LogicError(`Couldn't find the active window handle`);
73
85
  }
74
86
  async currentPage() {
75
87
  const actualCurrentPageHandle = await this.activeWindowHandle();
@@ -1 +1 @@
1
- {"version":3,"file":"WebdriverIOBrowsingSession.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebdriverIOBrowsingSession.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,sCAAsC,EAAE,MAAM,6CAA6C,CAAC;AAErG;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,eAAgC;IAE7C;IAA/B,YAA+B,OAA4B;QACvD,KAAK,EAAE,CAAC;QADmB,YAAO,GAAP,OAAO,CAAqB;QAGvD,IAAI,CAAE,OAAO,CAAC,CAAC,IAAI,CAAE,OAAO,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,UAAU,CAAC,+JAA+J,CAAC,CAAA;QACzL,CAAC;IACL,CAAC;IAEQ,KAAK,CAAC,QAAQ;QACnB,gFAAgF;QAChF,MAAM,aAAa,GAAa,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAEtE,uCAAuC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE;aACzC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,CAAC;QAElC,qEAAqE;QACrE,MAAM,uBAAuB,GAAK,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,MAAM,wBAAwB,GAAI,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAE,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAEpH,KAAK,MAAM,uBAAuB,IAAI,wBAAwB,EAAE,CAAC;YAC7D,MAAM,YAAY,GAAG,IAAI,uBAAuB,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,CACT,IAAI,eAAe,CACf,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,EAAE,YAAY,CAAC,EACvE,YAAY,EACZ,IAAI,aAAa,CAAC,uBAAuB,CAAC,CAC7C,CACJ,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,mBAAmB,CAAC,IAAqB;QACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE7C,+BAA+B;QAC/B,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC,CAAC;QAClB,CAAC;QAED,qGAAqG;QACrG,IAAI,CAAE,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,CAAC;QAClB,CAAC;QAED,2CAA2C;QAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEjD,kCAAkC;QAClC,MAAM,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,IAAI,MAAa,CAAC;QAClB,IAAI,MAAc,CAAC;QACnB,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACX,MAAM,GAAG,KAAK,CAAC;YAEf,uGAAuG;YACvG,mBAAmB,GAAG,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvF,CAAC;QAED,wDAAwD;QACxD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,CAAE,MAAM,IAAI,mBAAmB,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACzD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBAElD,OAAO,cAAc,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,MAAM,CAAC;QACjB,CAAC;QAED,MAAM,IAAI,UAAU,CAAC,wCAAwC,CAAC,CAAC;IACnE,CAAC;IAEQ,KAAK,CAAC,WAAW;QACtB,MAAM,uBAAuB,GAAK,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAClE,MAAM,mBAAmB,GAAS,aAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;QAElF,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACpF,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACnC,CAAC;QAED,kFAAkF;QAClF,0CAA0C;QAE1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzE,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACnC,CAAC;QAED,iGAAiG;QACjG,IAAI,CAAC,kBAAkB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3D,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAEkB,KAAK,CAAC,mBAAmB;QACxC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAE1D,MAAM,YAAY,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAEnD,MAAM,IAAI,GAAG,IAAI,eAAe,CAC5B,IAAI,EACJ,IAAI,CAAC,OAAO,EACZ,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,YAAY,CAAC,EAC5D,YAAY,EACZ,IAAI,aAAa,CAAC,YAAY,CAAC,CAClC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,YAAoB,EAAE,YAAqC;QAC3F,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU;YAC1B,CAAC,CAAC,IAAI,sCAAsC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACvF,CAAC,CAAC,IAAI,6BAA6B,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACxE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QAC/C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QAEtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAEtD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,UAAU,CAAC,mFAAmF,CAAC,CAAA;QAC7G,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE5C,2EAA2E;QAC3E,gEAAgE;QAChE,6EAA6E;QAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAoB,CAAC;QAE7C,IAAI,CAAE,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,UAAU,CAAC,8DAA+D,YAAa,EAAE,CAAC,CAAA;QACxG,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEQ,mBAAmB;QACxB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAmC,CAAC,CAAC;IAC7E,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebdriverIOBrowsingSession.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrD;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe,CAAC,eAAe,CAAC;IAEhE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO;gBAA5B,OAAO,EAAE,WAAW,CAAC,OAAO;IAQ5C,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IA8B1D;;OAEG;IACY,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAoB1D,kBAAkB;IAmBjB,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;cAwB7B,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC;YAkB1D,qBAAqB;YAMrB,gBAAgB;IAwBrB,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAG/D"}
1
+ {"version":3,"file":"WebdriverIOBrowsingSession.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,mBAAmB,EAAsB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrD;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe,CAAC,eAAe,CAAC;IAEhE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO;gBAA5B,OAAO,EAAE,WAAW,CAAC,OAAO;IAQ5C,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IA8B1D;;OAEG;IACY,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAoB1D,kBAAkB;IAqCjB,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;cAwB7B,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC;YAkB1D,qBAAqB;YAMrB,gBAAgB;IAwBrB,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAG/D"}
@@ -58,21 +58,33 @@ class WebdriverIOBrowsingSession extends web_1.BrowsingSession {
58
58
  await super.changeCurrentPageTo(page);
59
59
  }
60
60
  async activeWindowHandle() {
61
+ let thrown;
62
+ let handle;
63
+ let windowAlreadyClosed = false;
61
64
  try {
62
- return await this.browser.getWindowHandle();
65
+ handle = await this.browser.getWindowHandle();
63
66
  }
64
67
  catch (error) {
68
+ thrown = error;
65
69
  // If the window is closed by user action Webdriver will still hold the reference to the closed window.
66
- if (['NoSuchWindowError', 'no such window'].includes(error.name)) {
67
- const allHandles = await this.browser.getWindowHandles();
68
- if (allHandles.length > 0) {
69
- const handle = allHandles.at(-1);
70
- await this.browser.switchToWindow(handle);
71
- return handle;
72
- }
70
+ windowAlreadyClosed = ['NoSuchWindowError', 'no such window'].includes(error.name);
71
+ }
72
+ // Handle can be `null` for windows closed by JavaScript
73
+ if (handle) {
74
+ return handle;
75
+ }
76
+ if (!handle || windowAlreadyClosed) {
77
+ const allHandles = await this.browser.getWindowHandles();
78
+ if (allHandles.length > 0) {
79
+ const fallbackHandle = allHandles.at(-1);
80
+ await this.browser.switchToWindow(fallbackHandle);
81
+ return fallbackHandle;
73
82
  }
74
- throw error;
75
83
  }
84
+ if (thrown) {
85
+ throw thrown;
86
+ }
87
+ throw new core_1.LogicError(`Couldn't find the active window handle`);
76
88
  }
77
89
  async currentPage() {
78
90
  const actualCurrentPageHandle = await this.activeWindowHandle();
@@ -1 +1 @@
1
- {"version":3,"file":"WebdriverIOBrowsingSession.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebdriverIOBrowsingSession.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOBrowsingSession.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/webdriverio-8",
3
- "version": "3.31.8",
3
+ "version": "3.31.10",
4
4
  "description": "Adapter that integrates @serenity-js/web with WebdriverIO 8, enabling Serenity/JS reporting and using the Screenplay Pattern to write web and mobile test scenarios",
5
5
  "author": {
6
6
  "name": "Jan Molak",
@@ -74,9 +74,9 @@
74
74
  "node": "^18.12 || ^20 || ^22"
75
75
  },
76
76
  "dependencies": {
77
- "@serenity-js/core": "3.31.8",
78
- "@serenity-js/rest": "3.31.8",
79
- "@serenity-js/web": "3.31.8",
77
+ "@serenity-js/core": "3.31.10",
78
+ "@serenity-js/rest": "3.31.10",
79
+ "@serenity-js/web": "3.31.10",
80
80
  "@wdio/reporter": "8.41.0",
81
81
  "deepmerge": "4.3.1",
82
82
  "tiny-types": "1.23.0"
@@ -85,8 +85,8 @@
85
85
  "@serenity-js/cucumber": "^3.0.0",
86
86
  "@serenity-js/jasmine": "^3.0.0",
87
87
  "@serenity-js/mocha": "^3.0.0",
88
- "@wdio/cli": "^8.41.0",
89
- "webdriverio": "^8.41.0"
88
+ "@wdio/cli": "^8.42.0",
89
+ "webdriverio": "^8.42.0"
90
90
  },
91
91
  "peerDependenciesMeta": {
92
92
  "@serenity-js/cucumber": {
@@ -102,21 +102,21 @@
102
102
  "devDependencies": {
103
103
  "@integration/testing-tools": "3.0.0",
104
104
  "@types/mocha": "10.0.10",
105
- "@wdio/cli": "8.41.0",
106
- "@wdio/devtools-service": "8.41.0",
105
+ "@wdio/cli": "8.42.0",
106
+ "@wdio/devtools-service": "8.42.0",
107
107
  "@wdio/dot-reporter": "8.41.0",
108
- "@wdio/local-runner": "8.41.0",
108
+ "@wdio/local-runner": "8.42.0",
109
109
  "@wdio/spec-reporter": "8.41.0",
110
110
  "@wdio/types": "8.41.0",
111
- "axios": "1.7.9",
111
+ "axios": "1.8.1",
112
112
  "c8": "10.1.3",
113
113
  "cross-env": "7.0.3",
114
114
  "mocha": "11.1.0",
115
115
  "mocha-multi": "1.1.7",
116
116
  "mocha-testdata": "1.2.0",
117
- "puppeteer-core": "24.1.1",
117
+ "puppeteer-core": "24.3.1",
118
118
  "start-server-and-test": "2.0.10",
119
- "webdriverio": "8.41.0"
119
+ "webdriverio": "8.42.0"
120
120
  },
121
- "gitHead": "a4fdfa6a84f0086f4a948d83042bd49a58c06a52"
121
+ "gitHead": "78dc222056887bbfbd5c4a560c757eb1bb496871"
122
122
  }
@@ -80,22 +80,40 @@ export class WebdriverIOBrowsingSession extends BrowsingSession<WebdriverIOPage>
80
80
  }
81
81
 
82
82
  private async activeWindowHandle(): Promise<string> {
83
+ let thrown: Error;
84
+ let handle: string;
85
+ let windowAlreadyClosed = false;
86
+
83
87
  try {
84
- return await this.browser.getWindowHandle();
88
+ handle = await this.browser.getWindowHandle();
85
89
  }
86
90
  catch (error) {
91
+ thrown = error;
92
+
87
93
  // If the window is closed by user action Webdriver will still hold the reference to the closed window.
88
- if (['NoSuchWindowError', 'no such window'].includes(error.name)) {
89
- const allHandles = await this.browser.getWindowHandles();
90
- if (allHandles.length > 0) {
91
- const handle = allHandles.at(-1);
92
- await this.browser.switchToWindow(handle);
93
-
94
- return handle;
95
- }
94
+ windowAlreadyClosed = ['NoSuchWindowError', 'no such window'].includes(error.name);
95
+ }
96
+
97
+ // Handle can be `null` for windows closed by JavaScript
98
+ if (handle) {
99
+ return handle;
100
+ }
101
+
102
+ if (! handle || windowAlreadyClosed) {
103
+ const allHandles = await this.browser.getWindowHandles();
104
+ if (allHandles.length > 0) {
105
+ const fallbackHandle = allHandles.at(-1);
106
+ await this.browser.switchToWindow(fallbackHandle);
107
+
108
+ return fallbackHandle;
96
109
  }
97
- throw error;
98
110
  }
111
+
112
+ if (thrown) {
113
+ throw thrown;
114
+ }
115
+
116
+ throw new LogicError(`Couldn't find the active window handle`);
99
117
  }
100
118
 
101
119
  override async currentPage(): Promise<WebdriverIOPage> {