webdriverio 9.23.0 → 9.23.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/url.ts"],"names":[],"mappings":"AAKA,KAAK,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CAAA;AAKpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmJG;AACH,wBAAsB,GAAG,CACrB,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CA6HrC;AAED,UAAU,iBAAiB;IACvB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAA;CAC/B"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/commands/browser/url.ts"],"names":[],"mappings":"AAKA,KAAK,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CAAA;AAKpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmJG;AACH,wBAAsB,GAAG,CACrB,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,CA+HrC;AAED,UAAU,iBAAiB;IACvB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE;QACH,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACf,CAAA;IACD;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAA;CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"waitForExist.d.ts","sourceRoot":"","sources":["../../../src/commands/element/waitForExist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,YAAY,CAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,EACI,OAAqC,EACrC,QAAuC,EACvC,OAAe,EACf,UAAqG,EACxG,GAAE,cAAmB,iBAiCzB"}
1
+ {"version":3,"file":"waitForExist.d.ts","sourceRoot":"","sources":["../../../src/commands/element/waitForExist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAA;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,YAAY,CAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,EACzB,EACI,OAAqC,EACrC,QAAuC,EACvC,OAAe,EACf,UAAqG,EACxG,GAAE,cAAmB,iBAiDzB"}
package/build/index.js CHANGED
@@ -1014,11 +1014,11 @@ async function addInitScript(script, ...args) {
1014
1014
  }
1015
1015
  };
1016
1016
  this.on("script.message", messageHandler);
1017
- const resetFn = () => {
1017
+ const resetFn = (() => {
1018
1018
  eventHandler.clear();
1019
1019
  this.off("script.message", messageHandler);
1020
1020
  return this.scriptRemovePreloadScript({ script: result.script });
1021
- };
1021
+ });
1022
1022
  const returnVal = {
1023
1023
  remove: resetFn,
1024
1024
  on: (event, listener) => {
@@ -3022,7 +3022,7 @@ import logger3 from "@wdio/logger";
3022
3022
  // src/session/session.ts
3023
3023
  var sessionManager = /* @__PURE__ */ new Map();
3024
3024
  var listenerRegisteredSession = /* @__PURE__ */ new Set();
3025
- var _browser2, _scope, _SessionManager_instances, onCommand_fn;
3025
+ var _browser2, _scope, _onCommandListener, _SessionManager_instances, onCommand_fn;
3026
3026
  var SessionManager = class {
3027
3027
  /**
3028
3028
  * SessionManager constructor
@@ -3035,16 +3035,17 @@ var SessionManager = class {
3035
3035
  __privateAdd(this, _SessionManager_instances);
3036
3036
  __privateAdd(this, _browser2);
3037
3037
  __privateAdd(this, _scope);
3038
+ __privateAdd(this, _onCommandListener, __privateMethod(this, _SessionManager_instances, onCommand_fn).bind(this));
3038
3039
  __privateSet(this, _browser2, browser);
3039
3040
  __privateSet(this, _scope, scope);
3040
3041
  const registrationId = "".concat(__privateGet(this, _browser2).sessionId, "-").concat(__privateGet(this, _scope));
3041
3042
  if (!listenerRegisteredSession.has(registrationId)) {
3042
- __privateGet(this, _browser2).on("command", __privateMethod(this, _SessionManager_instances, onCommand_fn).bind(this));
3043
+ __privateGet(this, _browser2).on("command", __privateGet(this, _onCommandListener));
3043
3044
  listenerRegisteredSession.add(registrationId);
3044
3045
  }
3045
3046
  }
3046
3047
  removeListeners() {
3047
- __privateGet(this, _browser2).off("command", __privateMethod(this, _SessionManager_instances, onCommand_fn).bind(this));
3048
+ __privateGet(this, _browser2).off("command", __privateGet(this, _onCommandListener));
3048
3049
  }
3049
3050
  initialize() {
3050
3051
  return void 0;
@@ -3076,6 +3077,7 @@ var SessionManager = class {
3076
3077
  };
3077
3078
  _browser2 = new WeakMap();
3078
3079
  _scope = new WeakMap();
3080
+ _onCommandListener = new WeakMap();
3079
3081
  _SessionManager_instances = new WeakSet();
3080
3082
  onCommand_fn = function(ev) {
3081
3083
  if (ev.command === "deleteSession") {
@@ -3144,7 +3146,7 @@ var COMMANDS_REQUIRING_RESET = ["deleteSession", "refresh", "switchToParentFrame
3144
3146
  function getContextManager(browser) {
3145
3147
  return SessionManager.getSessionManager(browser, ContextManager);
3146
3148
  }
3147
- var _browser3, _currentContext, _mobileContext, _isNativeContext, _getContextSupport, _currentWindowHandle, _ContextManager_instances, onCommandResultBidiAndClassic_fn, onCommand_fn2, onCommandResultMobile_fn;
3149
+ var _browser3, _currentContext, _mobileContext, _isNativeContext, _getContextSupport, _currentWindowHandle, _onCommandResultBidiAndClassicListener, _onCommandListener2, _onCommandResultMobileListener, _navigationStartedListener, _ContextManager_instances, navigationStarted_fn, onCommandResultBidiAndClassic_fn, onCommand_fn2, onCommandResultMobile_fn;
3148
3150
  var _ContextManager = class _ContextManager extends SessionManager {
3149
3151
  constructor(browser) {
3150
3152
  super(browser, _ContextManager.name);
@@ -3155,6 +3157,10 @@ var _ContextManager = class _ContextManager extends SessionManager {
3155
3157
  __privateAdd(this, _isNativeContext);
3156
3158
  __privateAdd(this, _getContextSupport, true);
3157
3159
  __privateAdd(this, _currentWindowHandle);
3160
+ __privateAdd(this, _onCommandResultBidiAndClassicListener);
3161
+ __privateAdd(this, _onCommandListener2);
3162
+ __privateAdd(this, _onCommandResultMobileListener);
3163
+ __privateAdd(this, _navigationStartedListener);
3158
3164
  __privateSet(this, _browser3, browser);
3159
3165
  const capabilities = __privateGet(this, _browser3).capabilities;
3160
3166
  __privateSet(this, _isNativeContext, getNativeContext({ capabilities, isMobile: __privateGet(this, _browser3).isMobile }));
@@ -3163,38 +3169,32 @@ var _ContextManager = class _ContextManager extends SessionManager {
3163
3169
  isAndroid: __privateGet(this, _browser3).isAndroid,
3164
3170
  isNativeContext: __privateGet(this, _isNativeContext)
3165
3171
  }));
3166
- __privateGet(this, _browser3).on("result", __privateMethod(this, _ContextManager_instances, onCommandResultBidiAndClassic_fn).bind(this));
3172
+ __privateSet(this, _onCommandResultBidiAndClassicListener, __privateMethod(this, _ContextManager_instances, onCommandResultBidiAndClassic_fn).bind(this));
3173
+ __privateSet(this, _onCommandListener2, __privateMethod(this, _ContextManager_instances, onCommand_fn2).bind(this));
3174
+ __privateSet(this, _onCommandResultMobileListener, __privateMethod(this, _ContextManager_instances, onCommandResultMobile_fn).bind(this));
3175
+ __privateSet(this, _navigationStartedListener, __privateMethod(this, _ContextManager_instances, navigationStarted_fn).bind(this));
3176
+ __privateGet(this, _browser3).on("result", __privateGet(this, _onCommandResultBidiAndClassicListener));
3167
3177
  if (!this.isEnabled() && !__privateGet(this, _browser3).isMobile) {
3168
3178
  return;
3169
3179
  }
3170
- __privateGet(this, _browser3).on("command", __privateMethod(this, _ContextManager_instances, onCommand_fn2).bind(this));
3180
+ __privateGet(this, _browser3).on("command", __privateGet(this, _onCommandListener2));
3171
3181
  if (__privateGet(this, _browser3).isMobile) {
3172
- __privateGet(this, _browser3).on("result", __privateMethod(this, _ContextManager_instances, onCommandResultMobile_fn).bind(this));
3182
+ __privateGet(this, _browser3).on("result", __privateGet(this, _onCommandResultMobileListener));
3173
3183
  } else {
3174
3184
  __privateGet(this, _browser3).sessionSubscribe({
3175
3185
  events: ["browsingContext.navigationStarted"]
3176
3186
  });
3177
- __privateGet(this, _browser3).on("browsingContext.navigationStarted", async (nav) => {
3178
- if (!__privateGet(this, _currentContext) || nav.context === __privateGet(this, _currentContext)) {
3179
- return;
3180
- }
3181
- const { contexts } = await __privateGet(this, _browser3).browsingContextGetTree({});
3182
- const hasContext = this.findContext(__privateGet(this, _currentContext), contexts, "byContextId");
3183
- const newContext = contexts.find((context) => context.context === nav.context);
3184
- if (!hasContext && newContext) {
3185
- this.setCurrentContext(newContext.context);
3186
- __privateGet(this, _browser3).switchToWindow(__privateGet(this, _currentContext));
3187
- return;
3188
- }
3189
- });
3187
+ __privateGet(this, _browser3).on("browsingContext.navigationStarted", __privateGet(this, _navigationStartedListener));
3190
3188
  }
3191
3189
  }
3192
3190
  removeListeners() {
3193
3191
  super.removeListeners();
3194
- __privateGet(this, _browser3).off("result", __privateMethod(this, _ContextManager_instances, onCommandResultBidiAndClassic_fn).bind(this));
3195
- __privateGet(this, _browser3).off("command", __privateMethod(this, _ContextManager_instances, onCommand_fn2).bind(this));
3192
+ __privateGet(this, _browser3).off("result", __privateGet(this, _onCommandResultBidiAndClassicListener));
3193
+ __privateGet(this, _browser3).off("command", __privateGet(this, _onCommandListener2));
3196
3194
  if (__privateGet(this, _browser3).isMobile) {
3197
- __privateGet(this, _browser3).off("result", __privateMethod(this, _ContextManager_instances, onCommandResultMobile_fn).bind(this));
3195
+ __privateGet(this, _browser3).off("result", __privateGet(this, _onCommandResultMobileListener));
3196
+ } else {
3197
+ __privateGet(this, _browser3).off("browsingContext.navigationStarted", __privateGet(this, _navigationStartedListener));
3198
3198
  }
3199
3199
  }
3200
3200
  /**
@@ -3325,7 +3325,24 @@ _mobileContext = new WeakMap();
3325
3325
  _isNativeContext = new WeakMap();
3326
3326
  _getContextSupport = new WeakMap();
3327
3327
  _currentWindowHandle = new WeakMap();
3328
+ _onCommandResultBidiAndClassicListener = new WeakMap();
3329
+ _onCommandListener2 = new WeakMap();
3330
+ _onCommandResultMobileListener = new WeakMap();
3331
+ _navigationStartedListener = new WeakMap();
3328
3332
  _ContextManager_instances = new WeakSet();
3333
+ navigationStarted_fn = async function(nav) {
3334
+ if (!__privateGet(this, _currentContext) || nav.context === __privateGet(this, _currentContext)) {
3335
+ return;
3336
+ }
3337
+ const { contexts } = await __privateGet(this, _browser3).browsingContextGetTree({});
3338
+ const hasContext = this.findContext(__privateGet(this, _currentContext), contexts, "byContextId");
3339
+ const newContext = contexts.find((context) => context.context === nav.context);
3340
+ if (!hasContext && newContext) {
3341
+ this.setCurrentContext(newContext.context);
3342
+ await __privateGet(this, _browser3).switchToWindow(__privateGet(this, _currentContext));
3343
+ return;
3344
+ }
3345
+ };
3329
3346
  onCommandResultBidiAndClassic_fn = function(event) {
3330
3347
  if (event.command === "closeWindow") {
3331
3348
  __privateSet(this, _currentWindowHandle, void 0);
@@ -4379,7 +4396,7 @@ function getPolyfillManager(browser) {
4379
4396
  return SessionManager.getSessionManager(browser, PolyfillManager);
4380
4397
  }
4381
4398
  var log10 = logger10("webdriverio:PolyfillManager");
4382
- var _initialize, _browser5, _scriptsRegisteredInContexts, _PolyfillManager_instances, registerScripts_fn;
4399
+ var _initialize, _browser5, _scriptsRegisteredInContexts, _registerScriptsListener, _PolyfillManager_instances, registerScripts_fn;
4383
4400
  var _PolyfillManager = class _PolyfillManager extends SessionManager {
4384
4401
  constructor(browser) {
4385
4402
  super(browser, _PolyfillManager.name);
@@ -4387,12 +4404,13 @@ var _PolyfillManager = class _PolyfillManager extends SessionManager {
4387
4404
  __privateAdd(this, _initialize);
4388
4405
  __privateAdd(this, _browser5);
4389
4406
  __privateAdd(this, _scriptsRegisteredInContexts, /* @__PURE__ */ new Set());
4407
+ __privateAdd(this, _registerScriptsListener, __privateMethod(this, _PolyfillManager_instances, registerScripts_fn).bind(this));
4390
4408
  __privateSet(this, _browser5, browser);
4391
4409
  if (!this.isEnabled()) {
4392
4410
  __privateSet(this, _initialize, Promise.resolve(true));
4393
4411
  return;
4394
4412
  }
4395
- __privateGet(this, _browser5).on("browsingContext.contextCreated", __privateMethod(this, _PolyfillManager_instances, registerScripts_fn).bind(this));
4413
+ __privateGet(this, _browser5).on("browsingContext.contextCreated", __privateGet(this, _registerScriptsListener));
4396
4414
  __privateSet(this, _initialize, Promise.all([
4397
4415
  __privateGet(this, _browser5).browsingContextGetTree({}).then(({ contexts }) => {
4398
4416
  return Promise.all(contexts.map((context) => __privateMethod(this, _PolyfillManager_instances, registerScripts_fn).call(this, context)));
@@ -4404,7 +4422,7 @@ var _PolyfillManager = class _PolyfillManager extends SessionManager {
4404
4422
  }
4405
4423
  removeListeners() {
4406
4424
  super.removeListeners();
4407
- __privateGet(this, _browser5).off("browsingContext.contextCreated", __privateMethod(this, _PolyfillManager_instances, registerScripts_fn).bind(this));
4425
+ __privateGet(this, _browser5).off("browsingContext.contextCreated", __privateGet(this, _registerScriptsListener));
4408
4426
  }
4409
4427
  async initialize() {
4410
4428
  return __privateGet(this, _initialize);
@@ -4413,6 +4431,7 @@ var _PolyfillManager = class _PolyfillManager extends SessionManager {
4413
4431
  _initialize = new WeakMap();
4414
4432
  _browser5 = new WeakMap();
4415
4433
  _scriptsRegisteredInContexts = new WeakMap();
4434
+ _registerScriptsListener = new WeakMap();
4416
4435
  _PolyfillManager_instances = new WeakSet();
4417
4436
  registerScripts_fn = function(context) {
4418
4437
  if (__privateGet(this, _scriptsRegisteredInContexts).has(context.context)) {
@@ -4477,7 +4496,7 @@ var log11 = logger11("webdriverio:ShadowRootManager");
4477
4496
  function getShadowRootManager(browser) {
4478
4497
  return SessionManager.getSessionManager(browser, ShadowRootManager);
4479
4498
  }
4480
- var _browser6, _initialize2, _shadowRoots, _documentElement, _frameDepth, _ShadowRootManager_instances, handleBidiCommand_fn, commandResultHandler_fn;
4499
+ var _browser6, _initialize2, _shadowRoots, _documentElement, _frameDepth, _handleLogEntryListener, _commandResultHandlerListener, _handleBidiCommandListener, _ShadowRootManager_instances, handleBidiCommand_fn, commandResultHandler_fn;
4481
4500
  var _ShadowRootManager = class _ShadowRootManager extends SessionManager {
4482
4501
  constructor(browser) {
4483
4502
  super(browser, _ShadowRootManager.name);
@@ -4487,6 +4506,9 @@ var _ShadowRootManager = class _ShadowRootManager extends SessionManager {
4487
4506
  __privateAdd(this, _shadowRoots, /* @__PURE__ */ new Map());
4488
4507
  __privateAdd(this, _documentElement);
4489
4508
  __privateAdd(this, _frameDepth, 0);
4509
+ __privateAdd(this, _handleLogEntryListener, this.handleLogEntry.bind(this));
4510
+ __privateAdd(this, _commandResultHandlerListener, __privateMethod(this, _ShadowRootManager_instances, commandResultHandler_fn).bind(this));
4511
+ __privateAdd(this, _handleBidiCommandListener, __privateMethod(this, _ShadowRootManager_instances, handleBidiCommand_fn).bind(this));
4490
4512
  __privateSet(this, _browser6, browser);
4491
4513
  if (!this.isEnabled()) {
4492
4514
  __privateSet(this, _initialize2, Promise.resolve(true));
@@ -4495,18 +4517,18 @@ var _ShadowRootManager = class _ShadowRootManager extends SessionManager {
4495
4517
  __privateSet(this, _initialize2, __privateGet(this, _browser6).sessionSubscribe({
4496
4518
  events: ["log.entryAdded", "browsingContext.navigationStarted"]
4497
4519
  }).then(() => true, () => false));
4498
- __privateGet(this, _browser6).on("log.entryAdded", this.handleLogEntry.bind(this));
4499
- __privateGet(this, _browser6).on("result", __privateMethod(this, _ShadowRootManager_instances, commandResultHandler_fn).bind(this));
4500
- __privateGet(this, _browser6).on("bidiCommand", __privateMethod(this, _ShadowRootManager_instances, handleBidiCommand_fn).bind(this));
4520
+ __privateGet(this, _browser6).on("log.entryAdded", __privateGet(this, _handleLogEntryListener));
4521
+ __privateGet(this, _browser6).on("result", __privateGet(this, _commandResultHandlerListener));
4522
+ __privateGet(this, _browser6).on("bidiCommand", __privateGet(this, _handleBidiCommandListener));
4501
4523
  __privateGet(this, _browser6).scriptAddPreloadScript({
4502
4524
  functionDeclaration: customElementWrapper.toString()
4503
4525
  });
4504
4526
  }
4505
4527
  removeListeners() {
4506
4528
  super.removeListeners();
4507
- __privateGet(this, _browser6).off("log.entryAdded", this.handleLogEntry.bind(this));
4508
- __privateGet(this, _browser6).off("result", __privateMethod(this, _ShadowRootManager_instances, commandResultHandler_fn).bind(this));
4509
- __privateGet(this, _browser6).off("bidiCommand", __privateMethod(this, _ShadowRootManager_instances, handleBidiCommand_fn).bind(this));
4529
+ __privateGet(this, _browser6).off("log.entryAdded", __privateGet(this, _handleLogEntryListener));
4530
+ __privateGet(this, _browser6).off("result", __privateGet(this, _commandResultHandlerListener));
4531
+ __privateGet(this, _browser6).off("bidiCommand", __privateGet(this, _handleBidiCommandListener));
4510
4532
  }
4511
4533
  async initialize() {
4512
4534
  return __privateGet(this, _initialize2);
@@ -4649,6 +4671,9 @@ _initialize2 = new WeakMap();
4649
4671
  _shadowRoots = new WeakMap();
4650
4672
  _documentElement = new WeakMap();
4651
4673
  _frameDepth = new WeakMap();
4674
+ _handleLogEntryListener = new WeakMap();
4675
+ _commandResultHandlerListener = new WeakMap();
4676
+ _handleBidiCommandListener = new WeakMap();
4652
4677
  _ShadowRootManager_instances = new WeakSet();
4653
4678
  /**
4654
4679
  * keep track of navigation events and remove shadow roots when they are no longer needed
@@ -4757,7 +4782,7 @@ function getNetworkManager(browser) {
4757
4782
  }
4758
4783
  var UNKNOWN_NAVIGATION_ID = "UNKNOWN_NAVIGATION_ID";
4759
4784
  var SUPPORTED_NAVIGATION_PROTOCOLS = ["http", "https", "data", "file"];
4760
- var _browser7, _initialize3, _requests, _lastNetworkId, _NetworkManager_instances, beforeRequestSent_fn, navigationStarted_fn, fetchError_fn, findRootRequest_fn, responseCompleted_fn;
4785
+ var _browser7, _initialize3, _requests, _lastNetworkId, _navigationStartedListener2, _responseCompletedListener, _beforeRequestSentListener, _fetchErrorListener, _NetworkManager_instances, beforeRequestSent_fn, navigationStarted_fn2, fetchError_fn, findRootRequest_fn, responseCompleted_fn;
4761
4786
  var _NetworkManager = class _NetworkManager extends SessionManager {
4762
4787
  constructor(browser) {
4763
4788
  super(browser, _NetworkManager.name);
@@ -4766,6 +4791,10 @@ var _NetworkManager = class _NetworkManager extends SessionManager {
4766
4791
  __privateAdd(this, _initialize3);
4767
4792
  __privateAdd(this, _requests, /* @__PURE__ */ new Map());
4768
4793
  __privateAdd(this, _lastNetworkId);
4794
+ __privateAdd(this, _navigationStartedListener2, __privateMethod(this, _NetworkManager_instances, navigationStarted_fn2).bind(this));
4795
+ __privateAdd(this, _responseCompletedListener, __privateMethod(this, _NetworkManager_instances, responseCompleted_fn).bind(this));
4796
+ __privateAdd(this, _beforeRequestSentListener, __privateMethod(this, _NetworkManager_instances, beforeRequestSent_fn).bind(this));
4797
+ __privateAdd(this, _fetchErrorListener, __privateMethod(this, _NetworkManager_instances, fetchError_fn).bind(this));
4769
4798
  __privateSet(this, _browser7, browser);
4770
4799
  if (!this.isEnabled()) {
4771
4800
  __privateSet(this, _initialize3, Promise.resolve(true));
@@ -4780,19 +4809,19 @@ var _NetworkManager = class _NetworkManager extends SessionManager {
4780
4809
  "network.fetchError"
4781
4810
  ]
4782
4811
  }).then(() => true, () => false));
4783
- __privateGet(this, _browser7).on("browsingContext.navigationStarted", __privateMethod(this, _NetworkManager_instances, navigationStarted_fn).bind(this));
4784
- __privateGet(this, _browser7).on("browsingContext.fragmentNavigated", __privateMethod(this, _NetworkManager_instances, navigationStarted_fn).bind(this));
4785
- __privateGet(this, _browser7).on("network.responseCompleted", __privateMethod(this, _NetworkManager_instances, responseCompleted_fn).bind(this));
4786
- __privateGet(this, _browser7).on("network.beforeRequestSent", __privateMethod(this, _NetworkManager_instances, beforeRequestSent_fn).bind(this));
4787
- __privateGet(this, _browser7).on("network.fetchError", __privateMethod(this, _NetworkManager_instances, fetchError_fn).bind(this));
4812
+ __privateGet(this, _browser7).on("browsingContext.navigationStarted", __privateGet(this, _navigationStartedListener2));
4813
+ __privateGet(this, _browser7).on("browsingContext.fragmentNavigated", __privateGet(this, _navigationStartedListener2));
4814
+ __privateGet(this, _browser7).on("network.responseCompleted", __privateGet(this, _responseCompletedListener));
4815
+ __privateGet(this, _browser7).on("network.beforeRequestSent", __privateGet(this, _beforeRequestSentListener));
4816
+ __privateGet(this, _browser7).on("network.fetchError", __privateGet(this, _fetchErrorListener));
4788
4817
  }
4789
4818
  removeListeners() {
4790
4819
  super.removeListeners();
4791
- __privateGet(this, _browser7).off("browsingContext.navigationStarted", __privateMethod(this, _NetworkManager_instances, navigationStarted_fn).bind(this));
4792
- __privateGet(this, _browser7).off("browsingContext.fragmentNavigated", __privateMethod(this, _NetworkManager_instances, navigationStarted_fn).bind(this));
4793
- __privateGet(this, _browser7).off("network.responseCompleted", __privateMethod(this, _NetworkManager_instances, responseCompleted_fn).bind(this));
4794
- __privateGet(this, _browser7).off("network.beforeRequestSent", __privateMethod(this, _NetworkManager_instances, beforeRequestSent_fn).bind(this));
4795
- __privateGet(this, _browser7).off("network.fetchError", __privateMethod(this, _NetworkManager_instances, fetchError_fn).bind(this));
4820
+ __privateGet(this, _browser7).off("browsingContext.navigationStarted", __privateGet(this, _navigationStartedListener2));
4821
+ __privateGet(this, _browser7).off("browsingContext.fragmentNavigated", __privateGet(this, _navigationStartedListener2));
4822
+ __privateGet(this, _browser7).off("network.responseCompleted", __privateGet(this, _responseCompletedListener));
4823
+ __privateGet(this, _browser7).off("network.beforeRequestSent", __privateGet(this, _beforeRequestSentListener));
4824
+ __privateGet(this, _browser7).off("network.fetchError", __privateGet(this, _fetchErrorListener));
4796
4825
  }
4797
4826
  async initialize() {
4798
4827
  return __privateGet(this, _initialize3);
@@ -4826,6 +4855,10 @@ _browser7 = new WeakMap();
4826
4855
  _initialize3 = new WeakMap();
4827
4856
  _requests = new WeakMap();
4828
4857
  _lastNetworkId = new WeakMap();
4858
+ _navigationStartedListener2 = new WeakMap();
4859
+ _responseCompletedListener = new WeakMap();
4860
+ _beforeRequestSentListener = new WeakMap();
4861
+ _fetchErrorListener = new WeakMap();
4829
4862
  _NetworkManager_instances = new WeakSet();
4830
4863
  beforeRequestSent_fn = function(log27) {
4831
4864
  var _a;
@@ -4855,7 +4888,7 @@ beforeRequestSent_fn = function(log27) {
4855
4888
  timestamp: log27.timestamp
4856
4889
  });
4857
4890
  };
4858
- navigationStarted_fn = function(log27) {
4891
+ navigationStarted_fn2 = function(log27) {
4859
4892
  if (
4860
4893
  /**
4861
4894
  * we need a navigation id to identify the request
@@ -4956,7 +4989,7 @@ function headerListToObject(headers) {
4956
4989
  function getDialogManager(browser) {
4957
4990
  return SessionManager.getSessionManager(browser, DialogManager);
4958
4991
  }
4959
- var _browser8, _initialize4, _autoHandleDialog, _DialogManager_instances, handleUserPrompt_fn, switchListenerFlag_fn;
4992
+ var _browser8, _initialize4, _autoHandleDialog, _handleUserPromptListener, _DialogManager_instances, handleUserPrompt_fn, switchListenerFlag_fn;
4960
4993
  var _DialogManager = class _DialogManager extends SessionManager {
4961
4994
  constructor(browser) {
4962
4995
  super(browser, _DialogManager.name);
@@ -4964,6 +4997,7 @@ var _DialogManager = class _DialogManager extends SessionManager {
4964
4997
  __privateAdd(this, _browser8);
4965
4998
  __privateAdd(this, _initialize4);
4966
4999
  __privateAdd(this, _autoHandleDialog, true);
5000
+ __privateAdd(this, _handleUserPromptListener, __privateMethod(this, _DialogManager_instances, handleUserPrompt_fn).bind(this));
4967
5001
  __privateSet(this, _browser8, browser);
4968
5002
  if (!this.isEnabled()) {
4969
5003
  __privateSet(this, _initialize4, Promise.resolve(true));
@@ -4974,11 +5008,11 @@ var _DialogManager = class _DialogManager extends SessionManager {
4974
5008
  }).then(() => true, () => false));
4975
5009
  __privateGet(this, _browser8).on("_dialogListenerRegistered", () => __privateMethod(this, _DialogManager_instances, switchListenerFlag_fn).call(this, false));
4976
5010
  __privateGet(this, _browser8).on("_dialogListenerRemoved", () => __privateMethod(this, _DialogManager_instances, switchListenerFlag_fn).call(this, true));
4977
- __privateGet(this, _browser8).on("browsingContext.userPromptOpened", __privateMethod(this, _DialogManager_instances, handleUserPrompt_fn).bind(this));
5011
+ __privateGet(this, _browser8).on("browsingContext.userPromptOpened", __privateGet(this, _handleUserPromptListener));
4978
5012
  }
4979
5013
  removeListeners() {
4980
5014
  super.removeListeners();
4981
- __privateGet(this, _browser8).off("browsingContext.userPromptOpened", __privateMethod(this, _DialogManager_instances, handleUserPrompt_fn).bind(this));
5015
+ __privateGet(this, _browser8).off("browsingContext.userPromptOpened", __privateGet(this, _handleUserPromptListener));
4982
5016
  __privateGet(this, _browser8).removeAllListeners("_dialogListenerRegistered");
4983
5017
  __privateGet(this, _browser8).removeAllListeners("_dialogListenerRemoved");
4984
5018
  }
@@ -4989,6 +5023,7 @@ var _DialogManager = class _DialogManager extends SessionManager {
4989
5023
  _browser8 = new WeakMap();
4990
5024
  _initialize4 = new WeakMap();
4991
5025
  _autoHandleDialog = new WeakMap();
5026
+ _handleUserPromptListener = new WeakMap();
4992
5027
  _DialogManager_instances = new WeakSet();
4993
5028
  handleUserPrompt_fn = async function(log27) {
4994
5029
  if (__privateGet(this, _autoHandleDialog)) {
@@ -5703,7 +5738,8 @@ async function url(path, options = {}) {
5703
5738
  if (
5704
5739
  // Chrome error message
5705
5740
  err.message.includes("navigation canceled by concurrent navigation") || // Firefox error message
5706
- err.message.includes("failed with error: unknown error")
5741
+ err.message.includes("failed with error: unknown error") || // Race condition where the context is destroyed before navigation
5742
+ err.message.includes("no such frame")
5707
5743
  ) {
5708
5744
  return this.navigateTo(validateUrl(path));
5709
5745
  }
@@ -8112,15 +8148,25 @@ async function waitForExist({
8112
8148
  { timeout, interval, timeoutMsg }
8113
8149
  );
8114
8150
  if (!reverse && isExisting2 && typeof this.selector === "string") {
8115
- let element;
8116
- if (this.index !== void 0) {
8117
- const elements = this.isShadowElement ? await this.parent.shadow$$(this.selector) : await this.parent.$$(this.selector);
8118
- element = elements[this.index];
8119
- } else {
8120
- element = this.isShadowElement ? this.parent.shadow$(this.selector) : this.parent.$(this.selector);
8151
+ let isCurrentIdValid = false;
8152
+ if (this.elementId) {
8153
+ try {
8154
+ await this.getElementTagName(this.elementId);
8155
+ isCurrentIdValid = true;
8156
+ } catch {
8157
+ }
8158
+ }
8159
+ if (!isCurrentIdValid) {
8160
+ let element;
8161
+ if (this.index !== void 0) {
8162
+ const elements = this.isShadowElement ? await this.parent.shadow$$(this.selector) : await this.parent.$$(this.selector);
8163
+ element = elements[this.index];
8164
+ } else {
8165
+ element = this.isShadowElement ? this.parent.shadow$(this.selector) : this.parent.$(this.selector);
8166
+ }
8167
+ this.elementId = await element.elementId;
8168
+ this[ELEMENT_KEY19] = this.elementId;
8121
8169
  }
8122
- this.elementId = await element.elementId;
8123
- this[ELEMENT_KEY19] = this.elementId;
8124
8170
  delete this.error;
8125
8171
  }
8126
8172
  return isExisting2;
@@ -8608,6 +8654,9 @@ async function findDeepElement(selector) {
8608
8654
  this.elementId
8609
8655
  );
8610
8656
  const { using, value } = findStrategy(selector, this.isW3C, this.isMobile);
8657
+ if (using === "xpath" && (value.startsWith("./") || value.startsWith("..")) && this.elementId) {
8658
+ return this.findElementFromElement(this.elementId, using, value);
8659
+ }
8611
8660
  const locator = transformClassicToBidiSelector(using, value);
8612
8661
  const startNodes = shadowRoots.length > 0 ? shadowRoots.map((shadowRootNodeId) => ({ sharedId: shadowRootNodeId })) : this.elementId ? [{ sharedId: this.elementId }] : void 0;
8613
8662
  const deepElementResult = await browser.browsingContextLocateNodes({ locator, context, startNodes }).then(async (result) => {
@@ -8644,6 +8693,9 @@ async function findDeepElements(selector) {
8644
8693
  this.elementId
8645
8694
  );
8646
8695
  const { using, value } = findStrategy(selector, this.isW3C, this.isMobile);
8696
+ if (using === "xpath" && (value.startsWith("./") || value.startsWith("..")) && this.elementId) {
8697
+ return this.findElementsFromElement(this.elementId, using, value);
8698
+ }
8647
8699
  const locator = transformClassicToBidiSelector(using, value);
8648
8700
  const startNodes = shadowRoots.length > 0 ? shadowRoots.map((shadowRootNodeId) => ({ sharedId: shadowRootNodeId })) : this.elementId ? [{ sharedId: this.elementId }] : void 0;
8649
8701
  const deepElementResult = await browser.browsingContextLocateNodes({ locator, context, startNodes }).then(async (result) => {
@@ -8718,7 +8770,7 @@ async function findElement(selector) {
8718
8770
  const notFoundError = new Error("DOM Node couldn't be found anymore");
8719
8771
  const uid = Math.random().toString().slice(2);
8720
8772
  window.__wdio_element[uid] = selector;
8721
- selector = (id) => window.__wdio_element[id];
8773
+ selector = ((id) => window.__wdio_element[id]);
8722
8774
  let elem = await fetchElementByJSFunction(selector, this, uid).catch((err) => {
8723
8775
  if (isStaleElementError(err)) {
8724
8776
  return void 0;
package/build/node.js CHANGED
@@ -184,10 +184,11 @@ var SessionManager = class {
184
184
  this.#scope = scope;
185
185
  const registrationId = `${this.#browser.sessionId}-${this.#scope}`;
186
186
  if (!listenerRegisteredSession.has(registrationId)) {
187
- this.#browser.on("command", this.#onCommand.bind(this));
187
+ this.#browser.on("command", this.#onCommandListener);
188
188
  listenerRegisteredSession.add(registrationId);
189
189
  }
190
190
  }
191
+ #onCommandListener = this.#onCommand.bind(this);
191
192
  #onCommand(ev) {
192
193
  if (ev.command === "deleteSession") {
193
194
  const sessionManagerInstances = sessionManager.get(this.#scope);
@@ -199,7 +200,7 @@ var SessionManager = class {
199
200
  }
200
201
  }
201
202
  removeListeners() {
202
- this.#browser.off("command", this.#onCommand.bind(this));
203
+ this.#browser.off("command", this.#onCommandListener);
203
204
  }
204
205
  initialize() {
205
206
  return void 0;
@@ -290,6 +291,10 @@ var ContextManager = class _ContextManager extends SessionManager {
290
291
  #isNativeContext;
291
292
  #getContextSupport = true;
292
293
  #currentWindowHandle;
294
+ #onCommandResultBidiAndClassicListener;
295
+ #onCommandListener;
296
+ #onCommandResultMobileListener;
297
+ #navigationStartedListener;
293
298
  constructor(browser) {
294
299
  super(browser, _ContextManager.name);
295
300
  this.#browser = browser;
@@ -300,38 +305,45 @@ var ContextManager = class _ContextManager extends SessionManager {
300
305
  isAndroid: this.#browser.isAndroid,
301
306
  isNativeContext: this.#isNativeContext
302
307
  });
303
- this.#browser.on("result", this.#onCommandResultBidiAndClassic.bind(this));
308
+ this.#onCommandResultBidiAndClassicListener = this.#onCommandResultBidiAndClassic.bind(this);
309
+ this.#onCommandListener = this.#onCommand.bind(this);
310
+ this.#onCommandResultMobileListener = this.#onCommandResultMobile.bind(this);
311
+ this.#navigationStartedListener = this.#navigationStarted.bind(this);
312
+ this.#browser.on("result", this.#onCommandResultBidiAndClassicListener);
304
313
  if (!this.isEnabled() && !this.#browser.isMobile) {
305
314
  return;
306
315
  }
307
- this.#browser.on("command", this.#onCommand.bind(this));
316
+ this.#browser.on("command", this.#onCommandListener);
308
317
  if (this.#browser.isMobile) {
309
- this.#browser.on("result", this.#onCommandResultMobile.bind(this));
318
+ this.#browser.on("result", this.#onCommandResultMobileListener);
310
319
  } else {
311
320
  this.#browser.sessionSubscribe({
312
321
  events: ["browsingContext.navigationStarted"]
313
322
  });
314
- this.#browser.on("browsingContext.navigationStarted", async (nav) => {
315
- if (!this.#currentContext || nav.context === this.#currentContext) {
316
- return;
317
- }
318
- const { contexts } = await this.#browser.browsingContextGetTree({});
319
- const hasContext = this.findContext(this.#currentContext, contexts, "byContextId");
320
- const newContext = contexts.find((context) => context.context === nav.context);
321
- if (!hasContext && newContext) {
322
- this.setCurrentContext(newContext.context);
323
- this.#browser.switchToWindow(this.#currentContext);
324
- return;
325
- }
326
- });
323
+ this.#browser.on("browsingContext.navigationStarted", this.#navigationStartedListener);
327
324
  }
328
325
  }
329
326
  removeListeners() {
330
327
  super.removeListeners();
331
- this.#browser.off("result", this.#onCommandResultBidiAndClassic.bind(this));
332
- this.#browser.off("command", this.#onCommand.bind(this));
328
+ this.#browser.off("result", this.#onCommandResultBidiAndClassicListener);
329
+ this.#browser.off("command", this.#onCommandListener);
333
330
  if (this.#browser.isMobile) {
334
- this.#browser.off("result", this.#onCommandResultMobile.bind(this));
331
+ this.#browser.off("result", this.#onCommandResultMobileListener);
332
+ } else {
333
+ this.#browser.off("browsingContext.navigationStarted", this.#navigationStartedListener);
334
+ }
335
+ }
336
+ async #navigationStarted(nav) {
337
+ if (!this.#currentContext || nav.context === this.#currentContext) {
338
+ return;
339
+ }
340
+ const { contexts } = await this.#browser.browsingContextGetTree({});
341
+ const hasContext = this.findContext(this.#currentContext, contexts, "byContextId");
342
+ const newContext = contexts.find((context) => context.context === nav.context);
343
+ if (!hasContext && newContext) {
344
+ this.setCurrentContext(newContext.context);
345
+ await this.#browser.switchToWindow(this.#currentContext);
346
+ return;
335
347
  }
336
348
  }
337
349
  #onCommandResultBidiAndClassic(event) {
@@ -1547,11 +1559,11 @@ async function addInitScript(script, ...args) {
1547
1559
  }
1548
1560
  };
1549
1561
  this.on("script.message", messageHandler);
1550
- const resetFn = () => {
1562
+ const resetFn = (() => {
1551
1563
  eventHandler.clear();
1552
1564
  this.off("script.message", messageHandler);
1553
1565
  return this.scriptRemovePreloadScript({ script: result.script });
1554
- };
1566
+ });
1555
1567
  const returnVal = {
1556
1568
  remove: resetFn,
1557
1569
  on: (event, listener) => {
@@ -4508,6 +4520,7 @@ var PolyfillManager = class _PolyfillManager extends SessionManager {
4508
4520
  #initialize;
4509
4521
  #browser;
4510
4522
  #scriptsRegisteredInContexts = /* @__PURE__ */ new Set();
4523
+ #registerScriptsListener = this.#registerScripts.bind(this);
4511
4524
  constructor(browser) {
4512
4525
  super(browser, _PolyfillManager.name);
4513
4526
  this.#browser = browser;
@@ -4515,7 +4528,7 @@ var PolyfillManager = class _PolyfillManager extends SessionManager {
4515
4528
  this.#initialize = Promise.resolve(true);
4516
4529
  return;
4517
4530
  }
4518
- this.#browser.on("browsingContext.contextCreated", this.#registerScripts.bind(this));
4531
+ this.#browser.on("browsingContext.contextCreated", this.#registerScriptsListener);
4519
4532
  this.#initialize = Promise.all([
4520
4533
  this.#browser.browsingContextGetTree({}).then(({ contexts }) => {
4521
4534
  return Promise.all(contexts.map((context) => this.#registerScripts(context)));
@@ -4527,7 +4540,7 @@ var PolyfillManager = class _PolyfillManager extends SessionManager {
4527
4540
  }
4528
4541
  removeListeners() {
4529
4542
  super.removeListeners();
4530
- this.#browser.off("browsingContext.contextCreated", this.#registerScripts.bind(this));
4543
+ this.#browser.off("browsingContext.contextCreated", this.#registerScriptsListener);
4531
4544
  }
4532
4545
  #registerScripts(context) {
4533
4546
  if (this.#scriptsRegisteredInContexts.has(context.context)) {
@@ -4568,6 +4581,9 @@ var ShadowRootManager = class _ShadowRootManager extends SessionManager {
4568
4581
  #shadowRoots = /* @__PURE__ */ new Map();
4569
4582
  #documentElement;
4570
4583
  #frameDepth = 0;
4584
+ #handleLogEntryListener = this.handleLogEntry.bind(this);
4585
+ #commandResultHandlerListener = this.#commandResultHandler.bind(this);
4586
+ #handleBidiCommandListener = this.#handleBidiCommand.bind(this);
4571
4587
  constructor(browser) {
4572
4588
  super(browser, _ShadowRootManager.name);
4573
4589
  this.#browser = browser;
@@ -4578,18 +4594,18 @@ var ShadowRootManager = class _ShadowRootManager extends SessionManager {
4578
4594
  this.#initialize = this.#browser.sessionSubscribe({
4579
4595
  events: ["log.entryAdded", "browsingContext.navigationStarted"]
4580
4596
  }).then(() => true, () => false);
4581
- this.#browser.on("log.entryAdded", this.handleLogEntry.bind(this));
4582
- this.#browser.on("result", this.#commandResultHandler.bind(this));
4583
- this.#browser.on("bidiCommand", this.#handleBidiCommand.bind(this));
4597
+ this.#browser.on("log.entryAdded", this.#handleLogEntryListener);
4598
+ this.#browser.on("result", this.#commandResultHandlerListener);
4599
+ this.#browser.on("bidiCommand", this.#handleBidiCommandListener);
4584
4600
  this.#browser.scriptAddPreloadScript({
4585
4601
  functionDeclaration: customElementWrapper.toString()
4586
4602
  });
4587
4603
  }
4588
4604
  removeListeners() {
4589
4605
  super.removeListeners();
4590
- this.#browser.off("log.entryAdded", this.handleLogEntry.bind(this));
4591
- this.#browser.off("result", this.#commandResultHandler.bind(this));
4592
- this.#browser.off("bidiCommand", this.#handleBidiCommand.bind(this));
4606
+ this.#browser.off("log.entryAdded", this.#handleLogEntryListener);
4607
+ this.#browser.off("result", this.#commandResultHandlerListener);
4608
+ this.#browser.off("bidiCommand", this.#handleBidiCommandListener);
4593
4609
  }
4594
4610
  async initialize() {
4595
4611
  return this.#initialize;
@@ -4835,6 +4851,10 @@ var NetworkManager = class _NetworkManager extends SessionManager {
4835
4851
  #initialize;
4836
4852
  #requests = /* @__PURE__ */ new Map();
4837
4853
  #lastNetworkId;
4854
+ #navigationStartedListener = this.#navigationStarted.bind(this);
4855
+ #responseCompletedListener = this.#responseCompleted.bind(this);
4856
+ #beforeRequestSentListener = this.#beforeRequestSent.bind(this);
4857
+ #fetchErrorListener = this.#fetchError.bind(this);
4838
4858
  constructor(browser) {
4839
4859
  super(browser, _NetworkManager.name);
4840
4860
  this.#browser = browser;
@@ -4851,19 +4871,19 @@ var NetworkManager = class _NetworkManager extends SessionManager {
4851
4871
  "network.fetchError"
4852
4872
  ]
4853
4873
  }).then(() => true, () => false);
4854
- this.#browser.on("browsingContext.navigationStarted", this.#navigationStarted.bind(this));
4855
- this.#browser.on("browsingContext.fragmentNavigated", this.#navigationStarted.bind(this));
4856
- this.#browser.on("network.responseCompleted", this.#responseCompleted.bind(this));
4857
- this.#browser.on("network.beforeRequestSent", this.#beforeRequestSent.bind(this));
4858
- this.#browser.on("network.fetchError", this.#fetchError.bind(this));
4874
+ this.#browser.on("browsingContext.navigationStarted", this.#navigationStartedListener);
4875
+ this.#browser.on("browsingContext.fragmentNavigated", this.#navigationStartedListener);
4876
+ this.#browser.on("network.responseCompleted", this.#responseCompletedListener);
4877
+ this.#browser.on("network.beforeRequestSent", this.#beforeRequestSentListener);
4878
+ this.#browser.on("network.fetchError", this.#fetchErrorListener);
4859
4879
  }
4860
4880
  removeListeners() {
4861
4881
  super.removeListeners();
4862
- this.#browser.off("browsingContext.navigationStarted", this.#navigationStarted.bind(this));
4863
- this.#browser.off("browsingContext.fragmentNavigated", this.#navigationStarted.bind(this));
4864
- this.#browser.off("network.responseCompleted", this.#responseCompleted.bind(this));
4865
- this.#browser.off("network.beforeRequestSent", this.#beforeRequestSent.bind(this));
4866
- this.#browser.off("network.fetchError", this.#fetchError.bind(this));
4882
+ this.#browser.off("browsingContext.navigationStarted", this.#navigationStartedListener);
4883
+ this.#browser.off("browsingContext.fragmentNavigated", this.#navigationStartedListener);
4884
+ this.#browser.off("network.responseCompleted", this.#responseCompletedListener);
4885
+ this.#browser.off("network.beforeRequestSent", this.#beforeRequestSentListener);
4886
+ this.#browser.off("network.fetchError", this.#fetchErrorListener);
4867
4887
  }
4868
4888
  async initialize() {
4869
4889
  return this.#initialize;
@@ -5022,6 +5042,7 @@ var DialogManager = class _DialogManager extends SessionManager {
5022
5042
  #browser;
5023
5043
  #initialize;
5024
5044
  #autoHandleDialog = true;
5045
+ #handleUserPromptListener = this.#handleUserPrompt.bind(this);
5025
5046
  constructor(browser) {
5026
5047
  super(browser, _DialogManager.name);
5027
5048
  this.#browser = browser;
@@ -5034,11 +5055,11 @@ var DialogManager = class _DialogManager extends SessionManager {
5034
5055
  }).then(() => true, () => false);
5035
5056
  this.#browser.on("_dialogListenerRegistered", () => this.#switchListenerFlag(false));
5036
5057
  this.#browser.on("_dialogListenerRemoved", () => this.#switchListenerFlag(true));
5037
- this.#browser.on("browsingContext.userPromptOpened", this.#handleUserPrompt.bind(this));
5058
+ this.#browser.on("browsingContext.userPromptOpened", this.#handleUserPromptListener);
5038
5059
  }
5039
5060
  removeListeners() {
5040
5061
  super.removeListeners();
5041
- this.#browser.off("browsingContext.userPromptOpened", this.#handleUserPrompt.bind(this));
5062
+ this.#browser.off("browsingContext.userPromptOpened", this.#handleUserPromptListener);
5042
5063
  this.#browser.removeAllListeners("_dialogListenerRegistered");
5043
5064
  this.#browser.removeAllListeners("_dialogListenerRemoved");
5044
5065
  }
@@ -5732,7 +5753,8 @@ async function url(path8, options = {}) {
5732
5753
  if (
5733
5754
  // Chrome error message
5734
5755
  err.message.includes("navigation canceled by concurrent navigation") || // Firefox error message
5735
- err.message.includes("failed with error: unknown error")
5756
+ err.message.includes("failed with error: unknown error") || // Race condition where the context is destroyed before navigation
5757
+ err.message.includes("no such frame")
5736
5758
  ) {
5737
5759
  return this.navigateTo(validateUrl(path8));
5738
5760
  }
@@ -7814,15 +7836,25 @@ async function waitForExist({
7814
7836
  { timeout, interval, timeoutMsg }
7815
7837
  );
7816
7838
  if (!reverse && isExisting2 && typeof this.selector === "string") {
7817
- let element;
7818
- if (this.index !== void 0) {
7819
- const elements = this.isShadowElement ? await this.parent.shadow$$(this.selector) : await this.parent.$$(this.selector);
7820
- element = elements[this.index];
7821
- } else {
7822
- element = this.isShadowElement ? this.parent.shadow$(this.selector) : this.parent.$(this.selector);
7839
+ let isCurrentIdValid = false;
7840
+ if (this.elementId) {
7841
+ try {
7842
+ await this.getElementTagName(this.elementId);
7843
+ isCurrentIdValid = true;
7844
+ } catch {
7845
+ }
7846
+ }
7847
+ if (!isCurrentIdValid) {
7848
+ let element;
7849
+ if (this.index !== void 0) {
7850
+ const elements = this.isShadowElement ? await this.parent.shadow$$(this.selector) : await this.parent.$$(this.selector);
7851
+ element = elements[this.index];
7852
+ } else {
7853
+ element = this.isShadowElement ? this.parent.shadow$(this.selector) : this.parent.$(this.selector);
7854
+ }
7855
+ this.elementId = await element.elementId;
7856
+ this[ELEMENT_KEY19] = this.elementId;
7823
7857
  }
7824
- this.elementId = await element.elementId;
7825
- this[ELEMENT_KEY19] = this.elementId;
7826
7858
  delete this.error;
7827
7859
  }
7828
7860
  return isExisting2;
@@ -8247,9 +8279,9 @@ function fetchElementByJSFunction(selector, scope, referenceId) {
8247
8279
  if (!("elementId" in scope)) {
8248
8280
  return scope.execute(selector, referenceId);
8249
8281
  }
8250
- const script = function(elem, id) {
8282
+ const script = (function(elem, id) {
8251
8283
  return selector.call(elem, id);
8252
- }.toString().replace("selector", `(${selector.toString()})`);
8284
+ }).toString().replace("selector", `(${selector.toString()})`);
8253
8285
  const args = [scope];
8254
8286
  if (referenceId) {
8255
8287
  args.push(referenceId);
@@ -8294,6 +8326,9 @@ async function findDeepElement(selector) {
8294
8326
  this.elementId
8295
8327
  );
8296
8328
  const { using, value } = findStrategy(selector, this.isW3C, this.isMobile);
8329
+ if (using === "xpath" && (value.startsWith("./") || value.startsWith("..")) && this.elementId) {
8330
+ return this.findElementFromElement(this.elementId, using, value);
8331
+ }
8297
8332
  const locator = transformClassicToBidiSelector(using, value);
8298
8333
  const startNodes = shadowRoots.length > 0 ? shadowRoots.map((shadowRootNodeId) => ({ sharedId: shadowRootNodeId })) : this.elementId ? [{ sharedId: this.elementId }] : void 0;
8299
8334
  const deepElementResult = await browser.browsingContextLocateNodes({ locator, context, startNodes }).then(async (result) => {
@@ -8330,6 +8365,9 @@ async function findDeepElements(selector) {
8330
8365
  this.elementId
8331
8366
  );
8332
8367
  const { using, value } = findStrategy(selector, this.isW3C, this.isMobile);
8368
+ if (using === "xpath" && (value.startsWith("./") || value.startsWith("..")) && this.elementId) {
8369
+ return this.findElementsFromElement(this.elementId, using, value);
8370
+ }
8333
8371
  const locator = transformClassicToBidiSelector(using, value);
8334
8372
  const startNodes = shadowRoots.length > 0 ? shadowRoots.map((shadowRootNodeId) => ({ sharedId: shadowRootNodeId })) : this.elementId ? [{ sharedId: this.elementId }] : void 0;
8335
8373
  const deepElementResult = await browser.browsingContextLocateNodes({ locator, context, startNodes }).then(async (result) => {
@@ -8404,7 +8442,7 @@ async function findElement(selector) {
8404
8442
  const notFoundError = new Error("DOM Node couldn't be found anymore");
8405
8443
  const uid = Math.random().toString().slice(2);
8406
8444
  window.__wdio_element[uid] = selector;
8407
- selector = (id) => window.__wdio_element[id];
8445
+ selector = ((id) => window.__wdio_element[id]);
8408
8446
  let elem = await fetchElementByJSFunction(selector, this, uid).catch((err) => {
8409
8447
  if (isStaleElementError(err)) {
8410
8448
  return void 0;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/session/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAO7C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,kBAE7D;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAElG;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,cAAc;;gBAQlC,OAAO,EAAE,WAAW,CAAC,OAAO;IA0ExC,eAAe,IAAI,IAAI;IA0GvB;;OAEG;IACG,UAAU;IA6ChB,iBAAiB,CAAE,OAAO,EAAE,MAAM;IAQ5B,iBAAiB;IAOvB;;;OAGG;IACH,sBAAsB,CAAE,MAAM,CAAC,EAAE,MAAM;IAIvC;;;;OAIG;IACH,sBAAsB;IAItB,IAAI,eAAe,YAElB;IAED,IAAI,aAAa,uBAEhB;IAED;;;OAGG;IACG,kBAAkB,IAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAqBrE;;;;;OAKG;IACH,iBAAiB,CAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,uBAAuB,GAAG,KAAK,CAAC,mBAAmB,GAAG,SAAS;IAiBrH;;;;;;OAMG;IACH,WAAW,CACP,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,EAC9C,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,aAAa,GACzD,KAAK,CAAC,mBAAmB,GAAG,SAAS;CAqB3C"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/session/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAO7C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,kBAE7D;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAElG;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,cAAc;;gBAYlC,OAAO,EAAE,WAAW,CAAC,OAAO;IAoDxC,eAAe,IAAI,IAAI;IAyIvB;;OAEG;IACG,UAAU;IA6ChB,iBAAiB,CAAE,OAAO,EAAE,MAAM;IAQ5B,iBAAiB;IAOvB;;;OAGG;IACH,sBAAsB,CAAE,MAAM,CAAC,EAAE,MAAM;IAIvC;;;;OAIG;IACH,sBAAsB;IAItB,IAAI,eAAe,YAElB;IAED,IAAI,aAAa,uBAEhB;IAED;;;OAGG;IACG,kBAAkB,IAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAqBrE;;;;;OAKG;IACH,iBAAiB,CAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,uBAAuB,GAAG,KAAK,CAAC,mBAAmB,GAAG,SAAS;IAiBrH;;;;;;OAMG;IACH,WAAW,CACP,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,EAC9C,WAAW,EAAE,OAAO,GAAG,iBAAiB,GAAG,aAAa,GACzD,KAAK,CAAC,mBAAmB,GAAG,SAAS;CAqB3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/session/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,iBAE5D;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,cAAc;;gBAKjC,OAAO,EAAE,WAAW,CAAC,OAAO;IAyBxC,eAAe,IAAI,IAAI;IAOjB,UAAU;CAmCnB;AAED,qBAAa,MAAM;;gBAOF,KAAK,EAAE,KAAK,CAAC,yCAAyC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO;IAQjG,OAAO;IAIP,YAAY;IAIZ,IAAI;IAIJ;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM;IAexB,OAAO;CAahB"}
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/session/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,iBAE5D;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,cAAc;;gBAOjC,OAAO,EAAE,WAAW,CAAC,OAAO;IAyBxC,eAAe,IAAI,IAAI;IAOjB,UAAU;CAmCnB;AAED,qBAAa,MAAM;;gBAOF,KAAK,EAAE,KAAK,CAAC,yCAAyC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO;IAQjG,OAAO;IAIP,YAAY;IAIZ,IAAI;IAIJ;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM;IAexB,OAAO;CAahB"}
@@ -1 +1 @@
1
- {"version":3,"file":"networkManager.d.ts","sourceRoot":"","sources":["../../src/session/networkManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,kBAE7D;AAMD;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,cAAc;;gBAMlC,OAAO,EAAE,WAAW,CAAC,OAAO;IA+BxC,eAAe,IAAI,IAAI;IASjB,UAAU;IA+JhB,sBAAsB,CAAC,YAAY,EAAE,MAAM;IAI3C;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE;CAqBlE"}
1
+ {"version":3,"file":"networkManager.d.ts","sourceRoot":"","sources":["../../src/session/networkManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,kBAE7D;AAMD;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,cAAc;;gBAWlC,OAAO,EAAE,WAAW,CAAC,OAAO;IA+BxC,eAAe,IAAI,IAAI;IASjB,UAAU;IA+JhB,sBAAsB,CAAC,YAAY,EAAE,MAAM;IAI3C;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE;CAqBlE"}
@@ -1 +1 @@
1
- {"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../../src/session/polyfill.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAI7C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,mBAE9D;AAID;;GAEG;AACH,qBAAa,eAAgB,SAAQ,cAAc;;gBAKnC,OAAO,EAAE,WAAW,CAAC,OAAO;IA4BxC,eAAe;IA0CT,UAAU;CAGnB"}
1
+ {"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../../src/session/polyfill.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAI7C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,mBAE9D;AAID;;GAEG;AACH,qBAAa,eAAgB,SAAQ,cAAc;;gBAOnC,OAAO,EAAE,WAAW,CAAC,OAAO;IA4BxC,eAAe;IA0CT,UAAU;CAGnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"AAMA,qBAAa,cAAc;;IAIvB;;;;;;OAMG;gBACS,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM;IAqBvD,eAAe;IAIf,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,SAAS;IAST,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,WAAW,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC;CAgBxI"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"AAMA,qBAAa,cAAc;;IAIvB;;;;;;OAMG;gBACS,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM;IAuBvD,eAAe;IAIf,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,SAAS;IAST,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,WAAW,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC;CAgBxI"}
@@ -1 +1 @@
1
- {"version":3,"file":"shadowRoot.d.ts","sourceRoot":"","sources":["../../src/session/shadowRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AAKtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAK7C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,qBAEhE;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;;gBAOrC,OAAO,EAAE,WAAW,CAAC,OAAO;IA0BxC,eAAe,IAAI,IAAI;IAOjB,UAAU;IA4BhB;;;OAGG;IACH,aAAa;IAIb;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ;IAkGvC,4BAA4B,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAkC1E,gCAAgC,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE;IAgBpG,qBAAqB,CAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IActF,gBAAgB,CAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAOvD;AAED,qBAAa,cAAc;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,sBAA4B;gBAEvB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc;IAMxE;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAC7C;;;;;OAKG;IACH,gBAAgB,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IA6B5D,IAAI,CAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAelD,cAAc,CAAE,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAe/D,kBAAkB,IAAK,MAAM,EAAE;IAO/B,IAAI,IAAK,cAAc,EAAE;IAIzB,MAAM,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAepC"}
1
+ {"version":3,"file":"shadowRoot.d.ts","sourceRoot":"","sources":["../../src/session/shadowRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AAKtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAK7C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,qBAEhE;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;;gBAWrC,OAAO,EAAE,WAAW,CAAC,OAAO;IA0BxC,eAAe,IAAI,IAAI;IAOjB,UAAU;IA4BhB;;;OAGG;IACH,aAAa;IAIb;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ;IAkGvC,4BAA4B,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAkC1E,gCAAgC,CAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE;IAgBpG,qBAAqB,CAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IActF,gBAAgB,CAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAOvD;AAED,qBAAa,cAAc;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,cAAc,CAAA;IACrB,QAAQ,sBAA4B;gBAEvB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc;IAMxE;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAC7C;;;;;OAKG;IACH,gBAAgB,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IA6B5D,IAAI,CAAE,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAelD,cAAc,CAAE,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAe/D,kBAAkB,IAAK,MAAM,EAAE;IAO/B,IAAI,IAAK,cAAc,EAAE;IAIzB,MAAM,CAAE,OAAO,EAAE,MAAM,GAAG,OAAO;CAepC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,WAAW,CAAA;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AASvD,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEvF,OAAO,KAAK,EAAmB,QAAQ,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAOtG,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QAAG,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;KAAE;CACnE;AAiBD;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,GAAG,SAAS,uCAoCxD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,gBAAgB,kBAuB5D,CAAA;AAWD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,kBAkDvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAE,KAAK,EAAE,MAAM,YAgB1C;AAwBD,wBAAgB,SAAS,CAAE,CAAC,EAAE,QAAQ,gBAMrC;AAED,wBAAgB,mBAAmB,CAAE,GAAG,EAAE,KAAK,WAa9C;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAE,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,MAAM,IACxH,IAAI,CAAC,GAAG,KAAK,mBAkBxB;AAED,wBAAgB,8BAA8B,CAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,GAAG,MAAM,CAAC,+BAA+B,CAkB5L;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACjC,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAsDvC;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAClC,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAsD7B;AAUD;;;GAGG;AACH,wBAAsB,WAAW,CAC7B,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,iDA6FrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,+BAkDrB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,WAkBxD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,iDAuC9D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAcnE;AAED,wBAAsB,YAAY,CAAE,OAAO,EAAE,WAAW,CAAC,OAAO,oBAoB/D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,IACzF,MAAM,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,wBAAwB,UAOjG;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAC7B,UAAU,WAAW,CAAC,OAAO,EAAE,EAC/B,QAAQ,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EACjD,UAAU,QAAQ,GAAG,gBAAgB,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,EAC/D,kBAAgB,EAChB,QAAO,OAAO,EAAO,6BAwCxB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,qBAAqB,MAAM,+CAAgD,CAAA;AAElG;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC7B,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAShC,CAAA;AAED,wBAAgB,mCAAmC,CAAE,UAAU,EAAE,QAAQ,GAAG,MAAM,UAKjF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,WAAW,CAAA;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AASvD,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAEvF,OAAO,KAAK,EAAmB,QAAQ,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAOtG,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QAAG,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;KAAE;CACnE;AAiBD;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,GAAG,SAAS,uCAoCxD,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,gBAAgB,kBAuB5D,CAAA;AAWD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,kBAkDtE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,YAgBzC;AAwBD,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,gBAMpC;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,KAAK,WAa7C;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,MAAM,IACvH,IAAI,CAAC,GAAG,KAAK,mBAkBxB;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,GAAG,MAAM,CAAC,+BAA+B,CAkB3L;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACjC,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAgEvC;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAClC,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAgE7B;AAUD;;;GAGG;AACH,wBAAsB,WAAW,CAC7B,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,iDA6FrB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EAC/C,QAAQ,EAAE,QAAQ,+BAkDrB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,OAAO,WAkBxD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,iDAuC9D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAclE;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,oBAoB9D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,kBAAkB,IACzF,MAAM,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,wBAAwB,UAOjG;AAMD;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAC7B,UAAU,WAAW,CAAC,OAAO,EAAE,EAC/B,QAAQ,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,EACjD,UAAU,QAAQ,GAAG,gBAAgB,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,EAC/D,kBAAgB,EAChB,QAAO,OAAO,EAAO,6BAwCxB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,qBAAqB,MAAM,+CAAgD,CAAA;AAElG;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC7B,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAShC,CAAA;AAED,wBAAgB,mCAAmC,CAAC,UAAU,EAAE,QAAQ,GAAG,MAAM,UAKhF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "webdriverio",
3
3
  "description": "Next-gen browser and mobile automation test framework for Node.js",
4
- "version": "9.23.0",
4
+ "version": "9.23.2",
5
5
  "homepage": "https://webdriver.io",
6
6
  "author": "Christian Bromann <mail@bromann.dev>",
7
7
  "license": "MIT",
@@ -77,12 +77,12 @@
77
77
  "dependencies": {
78
78
  "@types/node": "^20.11.30",
79
79
  "@types/sinonjs__fake-timers": "^8.1.5",
80
- "@wdio/config": "9.23.0",
80
+ "@wdio/config": "9.23.2",
81
81
  "@wdio/logger": "9.18.0",
82
- "@wdio/protocols": "9.16.2",
82
+ "@wdio/protocols": "9.23.2",
83
83
  "@wdio/repl": "9.16.2",
84
- "@wdio/types": "9.20.0",
85
- "@wdio/utils": "9.23.0",
84
+ "@wdio/types": "9.23.2",
85
+ "@wdio/utils": "9.23.2",
86
86
  "archiver": "^7.0.1",
87
87
  "aria-query": "^5.3.0",
88
88
  "cheerio": "^1.0.0-rc.12",
@@ -99,7 +99,7 @@
99
99
  "rgb2hex": "0.2.5",
100
100
  "serialize-error": "^12.0.0",
101
101
  "urlpattern-polyfill": "^10.0.0",
102
- "webdriver": "9.23.0"
102
+ "webdriver": "9.23.2"
103
103
  },
104
104
  "peerDependencies": {
105
105
  "puppeteer-core": ">=22.x || <=24.x"
@@ -109,5 +109,5 @@
109
109
  "optional": true
110
110
  }
111
111
  },
112
- "gitHead": "5b35e4e2b94e3ac5247ec2bf27f2f5e41ef00372"
112
+ "gitHead": "3447f2744e52b367ad1164ff6a920924d830e4ee"
113
113
  }