webdriverio 9.0.0-alpha.11 → 9.0.0-alpha.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/build/cjs/index.js +0 -1
  2. package/build/commands/browser/$$.js +0 -1
  3. package/build/commands/browser/$.d.ts.map +1 -1
  4. package/build/commands/browser/$.js +10 -20
  5. package/build/commands/browser/action.js +0 -1
  6. package/build/commands/browser/actions.js +0 -1
  7. package/build/commands/browser/addCommand.js +0 -1
  8. package/build/commands/browser/call.js +0 -1
  9. package/build/commands/browser/custom$$.js +0 -1
  10. package/build/commands/browser/custom$.js +0 -1
  11. package/build/commands/browser/debug.js +0 -1
  12. package/build/commands/browser/deleteCookies.js +0 -1
  13. package/build/commands/browser/emulate.d.ts +6 -0
  14. package/build/commands/browser/emulate.d.ts.map +1 -1
  15. package/build/commands/browser/emulate.js +6 -1
  16. package/build/commands/browser/execute.js +0 -1
  17. package/build/commands/browser/executeAsync.js +0 -1
  18. package/build/commands/browser/getCookies.js +0 -1
  19. package/build/commands/browser/getPuppeteer.js +0 -1
  20. package/build/commands/browser/getWindowSize.js +0 -1
  21. package/build/commands/browser/keys.js +0 -1
  22. package/build/commands/browser/mock.d.ts +4 -7
  23. package/build/commands/browser/mock.d.ts.map +1 -1
  24. package/build/commands/browser/mock.js +4 -44
  25. package/build/commands/browser/mockClearAll.js +0 -1
  26. package/build/commands/browser/mockRestoreAll.js +0 -1
  27. package/build/commands/browser/newWindow.js +0 -1
  28. package/build/commands/browser/overwriteCommand.js +0 -1
  29. package/build/commands/browser/pause.js +0 -1
  30. package/build/commands/browser/react$$.js +0 -1
  31. package/build/commands/browser/react$.js +0 -1
  32. package/build/commands/browser/reloadSession.js +0 -1
  33. package/build/commands/browser/savePDF.js +0 -1
  34. package/build/commands/browser/saveRecordingScreen.js +0 -1
  35. package/build/commands/browser/saveScreenshot.js +0 -1
  36. package/build/commands/browser/scroll.js +0 -1
  37. package/build/commands/browser/setCookies.js +0 -1
  38. package/build/commands/browser/setTimeout.js +0 -1
  39. package/build/commands/browser/setWindowSize.js +0 -1
  40. package/build/commands/browser/switchWindow.js +0 -1
  41. package/build/commands/browser/throttle.d.ts +1 -1
  42. package/build/commands/browser/throttle.d.ts.map +1 -1
  43. package/build/commands/browser/throttle.js +0 -1
  44. package/build/commands/browser/throttleCPU.js +0 -1
  45. package/build/commands/browser/throttleNetwork.d.ts +1 -1
  46. package/build/commands/browser/throttleNetwork.d.ts.map +1 -1
  47. package/build/commands/browser/throttleNetwork.js +0 -1
  48. package/build/commands/browser/touchAction.js +0 -1
  49. package/build/commands/browser/uploadFile.js +0 -1
  50. package/build/commands/browser/url.js +0 -1
  51. package/build/commands/browser/waitUntil.js +0 -1
  52. package/build/commands/browser.js +0 -1
  53. package/build/commands/constant.js +0 -1
  54. package/build/commands/element/$$.js +0 -1
  55. package/build/commands/element/$.js +0 -1
  56. package/build/commands/element/addValue.js +0 -1
  57. package/build/commands/element/clearValue.js +0 -1
  58. package/build/commands/element/click.js +0 -1
  59. package/build/commands/element/custom$$.js +0 -1
  60. package/build/commands/element/custom$.js +0 -1
  61. package/build/commands/element/doubleClick.js +0 -1
  62. package/build/commands/element/dragAndDrop.js +0 -1
  63. package/build/commands/element/execute.d.ts +0 -1
  64. package/build/commands/element/execute.d.ts.map +1 -1
  65. package/build/commands/element/execute.js +0 -1
  66. package/build/commands/element/executeAsync.d.ts +0 -1
  67. package/build/commands/element/executeAsync.d.ts.map +1 -1
  68. package/build/commands/element/executeAsync.js +0 -1
  69. package/build/commands/element/getAttribute.js +0 -1
  70. package/build/commands/element/getCSSProperty.d.ts +1 -1
  71. package/build/commands/element/getCSSProperty.d.ts.map +1 -1
  72. package/build/commands/element/getCSSProperty.js +0 -1
  73. package/build/commands/element/getComputedLabel.js +0 -1
  74. package/build/commands/element/getComputedRole.js +0 -1
  75. package/build/commands/element/getHTML.d.ts.map +1 -1
  76. package/build/commands/element/getHTML.js +30 -51
  77. package/build/commands/element/getLocation.js +0 -1
  78. package/build/commands/element/getProperty.js +0 -1
  79. package/build/commands/element/getSize.js +0 -1
  80. package/build/commands/element/getTagName.js +0 -1
  81. package/build/commands/element/getText.js +0 -1
  82. package/build/commands/element/getValue.js +0 -1
  83. package/build/commands/element/isClickable.js +0 -1
  84. package/build/commands/element/isDisplayed.js +0 -1
  85. package/build/commands/element/isEnabled.js +0 -1
  86. package/build/commands/element/isEqual.js +0 -1
  87. package/build/commands/element/isExisting.js +0 -1
  88. package/build/commands/element/isFocused.js +0 -1
  89. package/build/commands/element/isSelected.js +0 -1
  90. package/build/commands/element/isStable.js +0 -1
  91. package/build/commands/element/moveTo.js +0 -1
  92. package/build/commands/element/nextElement.d.ts +1 -1
  93. package/build/commands/element/nextElement.d.ts.map +1 -1
  94. package/build/commands/element/nextElement.js +0 -1
  95. package/build/commands/element/parentElement.d.ts +1 -1
  96. package/build/commands/element/parentElement.d.ts.map +1 -1
  97. package/build/commands/element/parentElement.js +0 -1
  98. package/build/commands/element/previousElement.d.ts +1 -1
  99. package/build/commands/element/previousElement.d.ts.map +1 -1
  100. package/build/commands/element/previousElement.js +0 -1
  101. package/build/commands/element/react$$.js +0 -1
  102. package/build/commands/element/react$.js +0 -1
  103. package/build/commands/element/saveScreenshot.js +0 -1
  104. package/build/commands/element/scrollIntoView.js +0 -1
  105. package/build/commands/element/selectByAttribute.js +0 -1
  106. package/build/commands/element/selectByIndex.js +0 -1
  107. package/build/commands/element/selectByVisibleText.js +0 -1
  108. package/build/commands/element/setValue.js +0 -1
  109. package/build/commands/element/shadow$$.js +0 -1
  110. package/build/commands/element/shadow$.js +0 -1
  111. package/build/commands/element/touchAction.js +0 -1
  112. package/build/commands/element/waitForClickable.js +0 -1
  113. package/build/commands/element/waitForDisplayed.js +0 -1
  114. package/build/commands/element/waitForEnabled.js +0 -1
  115. package/build/commands/element/waitForExist.js +0 -1
  116. package/build/commands/element/waitForStable.js +0 -1
  117. package/build/commands/element/waitUntil.js +0 -1
  118. package/build/commands/element.js +0 -1
  119. package/build/commands/mock/abort.js +0 -1
  120. package/build/commands/mock/abortOnce.js +0 -1
  121. package/build/commands/mock/clear.js +0 -1
  122. package/build/commands/mock/respond.js +0 -1
  123. package/build/commands/mock/respondOnce.js +0 -1
  124. package/build/commands/mock/restore.js +0 -1
  125. package/build/constants.js +0 -1
  126. package/build/index.d.ts +3 -5
  127. package/build/index.d.ts.map +1 -1
  128. package/build/index.js +3 -3
  129. package/build/middlewares.d.ts.map +1 -1
  130. package/build/middlewares.js +0 -1
  131. package/build/multiremote.js +0 -1
  132. package/build/protocol-stub.js +0 -1
  133. package/build/scripts/customElement.d.ts.map +1 -1
  134. package/build/scripts/customElement.js +6 -3
  135. package/build/scripts/getHTML.js +0 -1
  136. package/build/scripts/getHTMLShadow.d.ts +11 -8
  137. package/build/scripts/getHTMLShadow.d.ts.map +1 -1
  138. package/build/scripts/getHTMLShadow.js +20 -31
  139. package/build/scripts/getProperty.js +0 -1
  140. package/build/scripts/isDescendant.js +0 -1
  141. package/build/scripts/isElementClickable.js +0 -1
  142. package/build/scripts/isElementDisplayed.js +0 -1
  143. package/build/scripts/isElementInViewport.js +0 -1
  144. package/build/scripts/isElementStable.js +0 -1
  145. package/build/scripts/isFocused.js +0 -1
  146. package/build/scripts/newWindow.js +0 -1
  147. package/build/scripts/resq.js +0 -1
  148. package/build/scripts/shadowFnFactory.js +0 -1
  149. package/build/shadowRoot.d.ts +25 -15
  150. package/build/shadowRoot.d.ts.map +1 -1
  151. package/build/shadowRoot.js +153 -49
  152. package/build/types.d.ts +29 -37
  153. package/build/types.d.ts.map +1 -1
  154. package/build/types.js +0 -1
  155. package/build/utils/SevereServiceError.js +0 -1
  156. package/build/utils/Timer.js +0 -1
  157. package/build/utils/actions/base.js +0 -1
  158. package/build/utils/actions/index.js +0 -1
  159. package/build/utils/actions/key.js +0 -1
  160. package/build/utils/actions/pointer.js +0 -1
  161. package/build/utils/actions/wheel.js +0 -1
  162. package/build/utils/detectBackend.js +0 -1
  163. package/build/utils/driver.js +0 -1
  164. package/build/utils/findStrategy.js +0 -1
  165. package/build/utils/getElementObject.d.ts +3 -3
  166. package/build/utils/getElementObject.d.ts.map +1 -1
  167. package/build/utils/getElementObject.js +20 -11
  168. package/build/utils/implicitWait.js +0 -1
  169. package/build/utils/index.d.ts +2 -8
  170. package/build/utils/index.d.ts.map +1 -1
  171. package/build/utils/index.js +71 -96
  172. package/build/utils/interception/index.d.ts +76 -22
  173. package/build/utils/interception/index.d.ts.map +1 -1
  174. package/build/utils/interception/index.js +297 -26
  175. package/build/utils/interception/types.d.ts +18 -85
  176. package/build/utils/interception/types.d.ts.map +1 -1
  177. package/build/utils/interception/types.js +0 -1
  178. package/build/utils/interception/utils.d.ts +17 -0
  179. package/build/utils/interception/utils.d.ts.map +1 -0
  180. package/build/utils/interception/utils.js +87 -0
  181. package/build/utils/refetchElement.d.ts.map +1 -1
  182. package/build/utils/refetchElement.js +6 -3
  183. package/build/utils/thirdParty/querySelectorShadowDom.js +0 -1
  184. package/package.json +11 -9
  185. package/build/utils/interception/devtools.d.ts +0 -64
  186. package/build/utils/interception/devtools.d.ts.map +0 -1
  187. package/build/utils/interception/devtools.js +0 -268
  188. package/build/utils/interception/webdriver.d.ts +0 -49
  189. package/build/utils/interception/webdriver.d.ts.map +0 -1
  190. package/build/utils/interception/webdriver.js +0 -76
@@ -38,6 +38,7 @@ export const getElement = function findElement(selector, res, props = { isReactE
38
38
  ...getWDIOPrototype('element'),
39
39
  scope: { value: 'element' }
40
40
  };
41
+ propertiesObject.emit = { value: this.emit.bind(this) };
41
42
  const element = webdriverMonad(this.options, (client) => {
42
43
  const elementId = getElementFromResponse(res);
43
44
  if (elementId) {
@@ -48,19 +49,22 @@ export const getElement = function findElement(selector, res, props = { isReactE
48
49
  /**
49
50
  * set element id with proper key so element can be passed into execute commands
50
51
  */
51
- if (this.isW3C) {
52
- client[ELEMENT_KEY] = elementId;
53
- }
54
- else {
55
- client.ELEMENT = elementId;
52
+ client[ELEMENT_KEY] = elementId;
53
+ /**
54
+ * Attach locator if element was fetched with WebDriver Bidi.
55
+ * This allows to later re-fetch the element within the same conditions.
56
+ */
57
+ if (res && this.isBidi && 'locator' in res) {
58
+ client.locator = res.locator;
56
59
  }
57
60
  }
58
61
  else {
59
62
  client.error = res;
60
63
  }
61
- client.selector = selector || '';
64
+ if (selector) {
65
+ client.selector = selector;
66
+ }
62
67
  client.parent = this;
63
- client.emit = this.emit.bind(this);
64
68
  client.isReactElement = props.isReactElement;
65
69
  client.isShadowElement = props.isShadowElement;
66
70
  return client;
@@ -105,6 +109,7 @@ export const getElements = function getElements(selector, elemResponse, props =
105
109
  return res;
106
110
  }
107
111
  propertiesObject.scope = { value: 'element' };
112
+ propertiesObject.emit = { value: this.emit.bind(this) };
108
113
  const element = webdriverMonad(this.options, (client) => {
109
114
  const elementId = getElementFromResponse(res);
110
115
  if (elementId) {
@@ -115,8 +120,14 @@ export const getElements = function getElements(selector, elemResponse, props =
115
120
  /**
116
121
  * set element id with proper key so element can be passed into execute commands
117
122
  */
118
- const elementKey = this.isW3C ? ELEMENT_KEY : 'ELEMENT';
119
- client[elementKey] = elementId;
123
+ client[ELEMENT_KEY] = elementId;
124
+ /**
125
+ * Attach locator if element was fetched with WebDriver Bidi.
126
+ * This allows to later re-fetch the element within the same conditions.
127
+ */
128
+ if (res && this.isBidi && 'locator' in res) {
129
+ client.locator = res.locator;
130
+ }
120
131
  }
121
132
  else {
122
133
  res = res;
@@ -127,7 +138,6 @@ export const getElements = function getElements(selector, elemResponse, props =
127
138
  : selector;
128
139
  client.parent = this;
129
140
  client.index = i;
130
- client.emit = this.emit.bind(this);
131
141
  client.isReactElement = props.isReactElement;
132
142
  client.isShadowElement = props.isShadowElement;
133
143
  return client;
@@ -142,4 +152,3 @@ export const getElements = function getElements(selector, elemResponse, props =
142
152
  });
143
153
  return elements;
144
154
  };
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RWxlbWVudE9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9nZXRFbGVtZW50T2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pELE9BQU8sS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRzlDLE9BQU8sRUFBRSxZQUFZLElBQUksZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDdkQsT0FBTyxLQUFLLGVBQWUsTUFBTSx3QkFBd0IsQ0FBQTtBQWN6RCxNQUFNLGNBQWUsU0FBUSxLQUFLO0lBQzlCLFlBQVksR0FBbUM7UUFFM0MsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFZLENBQUE7UUFDcEMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUE2QixDQUFBO1FBRTNELEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztZQUNwQixLQUFLLEVBQUUsVUFBVSxJQUFJLEtBQUs7U0FDN0IsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxXQUFXLENBRTFDLFFBQW1CLEVBQ25CLEdBQThCLEVBQzlCLFFBQXlCLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FB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
@@ -31,4 +31,3 @@ export default async function implicitWait(currentElement, commandName) {
31
31
  }
32
32
  return currentElement;
33
33
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wbGljaXRXYWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ltcGxpY2l0V2FpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFFakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBRWpDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssVUFBVSxZQUFZLENBQUUsY0FBbUMsRUFBRSxXQUFtQjtJQUNoRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsZ0VBQWdFLENBQUMsRUFBRSxDQUFDO1FBQ3BILEdBQUcsQ0FBQyxLQUFLLENBQ0wsV0FBVyxXQUFXLCtCQUErQixjQUFjLENBQUMsUUFBUSxLQUFLO1lBQ2pGLHVDQUF1QyxDQUMxQyxDQUFBO1FBRUQsSUFBSSxDQUFDO1lBQ0QsTUFBTSxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUE7WUFDbkM7O2VBRUc7WUFDSCxPQUFRLGNBQWMsQ0FBQyxNQUE4QixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDcEYsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNMLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDO2dCQUM3RSxNQUFNLElBQUksS0FBSyxDQUNYLGNBQWMsV0FBVyxrREFBbUQsY0FBYyxDQUFDLE1BQThCLENBQUMsUUFBUSxnQ0FBZ0MsQ0FBQyxDQUFBO1lBQzNLLENBQUM7WUFFRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztnQkFDekUsTUFBTSxJQUFJLEtBQUssQ0FDWCxjQUFjLFdBQVcsOENBQStDLGNBQWMsQ0FBQyxNQUE4QixDQUFDLFFBQVEsZ0NBQWdDLENBQUMsQ0FBQTtZQUN2SyxDQUFDO1lBRUQsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQ1gsY0FBYyxXQUFXLGdEQUFpRCxjQUFjLENBQUMsTUFBOEIsQ0FBQyxRQUFRLDJCQUEyQixDQUFDLENBQUE7WUFDcEssQ0FBQztZQUVELE1BQU0sSUFBSSxLQUFLLENBQ1gsY0FBYyxXQUFXLDhCQUE4QixjQUFjLENBQUMsUUFBUSxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQ3ZILENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxjQUFjLENBQUE7QUFDekIsQ0FBQyJ9
@@ -1,3 +1,4 @@
1
+ import { type remote } from 'webdriver';
1
2
  import type { ElementReference } from '@wdio/protocols';
2
3
  import { type ShadowRootManager } from '../shadowRoot.js';
3
4
  import type { Selector, ParsedCSSValue, CustomLocatorReturnValue } from '../types.js';
@@ -39,14 +40,7 @@ export declare function isStaleElementError(err: Error): boolean;
39
40
  * @returns a function to handle the result of a shadow root inspection
40
41
  */
41
42
  export declare function elementPromiseHandler<T extends object>(handle: string, shadowRootManager: ShadowRootManager, shadowRootId?: string): (el: T | Error) => T | undefined;
42
- /**
43
- * determine if element is within the scope of another element
44
- * @param node an element somewhere located within the shadow DOM tree
45
- * @param host the host element (can be a shadow root or the document)
46
- * @param handle the browsing context
47
- * @returns true if the node is within the scope of the host
48
- */
49
- export declare function isWithinElementScope(node: ElementReference, host: WebdriverIO.Element, handle?: string): Promise<boolean>;
43
+ export declare function transformClassicToBidiSelector(using: string, value: string): remote.BrowsingContextCssLocator | remote.BrowsingContextXPathLocator;
50
44
  /**
51
45
  * Parallel look up of a selector within multiple shadow roots
52
46
  * @param this WebdriverIO Browser or Element instance
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,6 @@ import { ELEMENT_KEY } from 'webdriver';
11
11
  import { UNICODE_CHARACTERS, asyncIterators, getBrowserObject } from '@wdio/utils';
12
12
  import * as browserCommands from '../commands/browser.js';
13
13
  import * as elementCommands from '../commands/element.js';
14
- import isDescendent from '../scripts/isDescendant.js';
15
14
  import querySelectorAllDeep from './thirdParty/querySelectorShadowDom.js';
16
15
  import { DEEP_SELECTOR, Key } from '../constants.js';
17
16
  import { findStrategy } from './findStrategy.js';
@@ -182,7 +181,9 @@ export function isStaleElementError(err) {
182
181
  // Firefox
183
182
  err.message.includes('is no longer attached to the DOM') ||
184
183
  // Safari
185
- err.message.includes('Stale element found'));
184
+ err.message.toLowerCase().includes('stale element found') ||
185
+ // Chrome through JS execution
186
+ err.message.includes('stale element not found in the current frame'));
186
187
  }
187
188
  /**
188
189
  * handle promise result (resolved or rejected promises)
@@ -210,43 +211,14 @@ export function elementPromiseHandler(handle, shadowRootManager, shadowRootId) {
210
211
  return el;
211
212
  };
212
213
  }
213
- /**
214
- * determine if element is within the scope of another element
215
- * @param node an element somewhere located within the shadow DOM tree
216
- * @param host the host element (can be a shadow root or the document)
217
- * @param handle the browsing context
218
- * @returns true if the node is within the scope of the host
219
- */
220
- export async function isWithinElementScope(node, host, handle) {
221
- const browser = getBrowserObject(host);
222
- const shadowRootManager = getShadowRootManager(browser);
223
- const shadowRoots = shadowRootManager.getShadowRootsForContext(handle);
224
- const [documentFound, ...shadowFinds] = await Promise.all([
225
- browser.execute(isDescendent, host, node).then((wasFound) => wasFound ? host : undefined),
226
- ...shadowRoots.map((shadowRootId) => (browser.execute(isDescendent, { [ELEMENT_KEY]: shadowRootId }, node).then((wasFound) => wasFound ? shadowRootId : undefined)))
227
- ]);
228
- if (documentFound) {
229
- return true;
230
- }
231
- const allShadowFinds = shadowFinds.filter(Boolean);
232
- if (allShadowFinds.length > 1) {
233
- throw new Error('isWithinElementScope: too many results');
234
- }
235
- const shadowRootId = allShadowFinds[0];
236
- if (!shadowRootId) {
237
- return false;
214
+ export function transformClassicToBidiSelector(using, value) {
215
+ if (using === 'css selector') {
216
+ return { type: 'css', value: value };
238
217
  }
239
- const newNode = shadowRootManager.getElementWithShadowDOM(shadowRootId);
240
- if (!newNode) {
241
- return false;
218
+ if (using === 'xpath') {
219
+ return { type: 'xpath', value: value };
242
220
  }
243
- /**
244
- * recursively run the same function again, this time, instead of looking for the
245
- * node, we look for the found custom component outside the shadow root.
246
- */
247
- return isWithinElementScope({
248
- [ELEMENT_KEY]: newNode
249
- }, host, handle);
221
+ throw new Error(`Can't transform classic selector ${using} to Bidi selector`);
250
222
  }
251
223
  /**
252
224
  * Parallel look up of a selector within multiple shadow roots
@@ -259,49 +231,48 @@ export async function findDeepElement(selector) {
259
231
  const browser = getBrowserObject(this);
260
232
  const shadowRootManager = getShadowRootManager(browser);
261
233
  const handle = await browser.getWindowHandle();
262
- const shadowRoots = shadowRootManager.getShadowRootsForContext(handle);
234
+ const shadowRoots = shadowRootManager.getShadowElementsByContextId(handle, this.elementId);
263
235
  const { using, value } = findStrategy(selector, this.isW3C, this.isMobile);
236
+ const locator = transformClassicToBidiSelector(using, value);
264
237
  /**
265
238
  * look up selector within document and all shadow roots
266
239
  */
267
- const deepElementResult = await Promise.all([
240
+ const deepElementResult = (await Promise.all([
268
241
  /**
269
- * standard lookup in document
242
+ * fetch through all browsing contexts
270
243
  */
271
- ELEMENT_KEY in this
272
- ? this.findElementFromElement(this[ELEMENT_KEY], using, value)
273
- .then(elementPromiseHandler(handle, shadowRootManager, undefined), elementPromiseHandler(handle, shadowRootManager, undefined))
274
- : this.findElement(using, value)
275
- .then(elementPromiseHandler(handle, shadowRootManager, undefined), elementPromiseHandler(handle, shadowRootManager, undefined)),
244
+ browser.browsingContextLocateNodes({
245
+ locator,
246
+ context: handle,
247
+ maxNodeCount: 1,
248
+ ...(this.elementId
249
+ ? { startNodes: [{ sharedId: this.elementId }] }
250
+ : {})
251
+ }).then((result) => {
252
+ const elementId = result.nodes[0]?.sharedId;
253
+ if (!elementId) {
254
+ return undefined;
255
+ }
256
+ const elem = {
257
+ [ELEMENT_KEY]: elementId,
258
+ locator
259
+ };
260
+ return elem;
261
+ }, (err) => {
262
+ log.warn(`Failed to execute browser.browsingContextLocateNodes({ ... }) due to ${err}, falling back to regular WebDriver Classic command`);
263
+ return browser.findElement(using, value).catch((err) => {
264
+ log.warn(`Failed to execute browser.findElement({ ... }) due to ${err}`);
265
+ });
266
+ }),
276
267
  /**
277
- * lookup in shadow roots
268
+ * fetch through all shadow roots
278
269
  */
279
- ...shadowRoots.map((shadowRootNodeId) => browser.findElementFromShadowRoot(shadowRootNodeId, using, value)
280
- .then(elementPromiseHandler(handle, shadowRootManager, shadowRootNodeId), elementPromiseHandler(handle, shadowRootManager, shadowRootNodeId))
281
- .then(async (res) => {
282
- if (!res) {
283
- return;
284
- }
285
- /**
286
- * if an element was found with given selector within a shadow root
287
- * and
288
- * if we are calling the command from an element scope
289
- * then
290
- * we need to check if the found element is nested within the scope
291
- */
292
- if ('elementId' in this) {
293
- return (await isWithinElementScope(res, this, handle))
294
- ? res
295
- : undefined;
296
- }
297
- return res;
298
- }))
299
- ]);
300
- const allElementsFiltered = deepElementResult.flat().filter(Boolean);
301
- if (allElementsFiltered.length === 0) {
270
+ ...shadowRoots.map((shadowRootNodeId) => browser.findElementFromShadowRoot(shadowRootNodeId, using, value).then(elementPromiseHandler(handle, shadowRootManager), elementPromiseHandler(handle, shadowRootManager)))
271
+ ])).filter(Boolean);
272
+ if (deepElementResult.length === 0) {
302
273
  return new Error(`Couldn't find element with selector "${selector}"`);
303
274
  }
304
- return allElementsFiltered[0];
275
+ return deepElementResult[0];
305
276
  }
306
277
  /**
307
278
  * Parallel look up of a selector within multiple shadow roots
@@ -314,39 +285,35 @@ export async function findDeepElements(selector) {
314
285
  const browser = getBrowserObject(this);
315
286
  const shadowRootManager = getShadowRootManager(browser);
316
287
  const handle = await browser.getWindowHandle();
317
- const shadowRoots = shadowRootManager.getShadowRootsForContext(handle);
288
+ const shadowRoots = shadowRootManager.getShadowElementsByContextId(handle, this.elementId);
318
289
  const { using, value } = findStrategy(selector, this.isW3C, this.isMobile);
290
+ const locator = transformClassicToBidiSelector(using, value);
319
291
  /**
320
292
  * look up selector within document and all shadow roots
321
293
  */
322
- const deepElementsResult = await Promise.all([
294
+ const deepElementResult = (await Promise.all([
323
295
  /**
324
- * standard lookup in document
296
+ * fetch through all browsing contexts
325
297
  */
326
- ELEMENT_KEY in this
327
- ? this.findElementsFromElement(this[ELEMENT_KEY], using, value)
328
- : this.findElements(using, value),
298
+ browser.browsingContextLocateNodes({
299
+ locator,
300
+ context: handle,
301
+ ...(this.elementId
302
+ ? { startNodes: [{ sharedId: this.elementId }] }
303
+ : {})
304
+ }).then((result) => result.nodes.map((node) => ({
305
+ [ELEMENT_KEY]: node.sharedId,
306
+ locator
307
+ })), (err) => {
308
+ log.warn(`Failed to execute browser.browsingContextLocateNodes({ ... }) due to ${err}, falling back to regular WebDriver Classic command`);
309
+ return browser.findElements(using, value);
310
+ }),
329
311
  /**
330
- * lookup in shadow roots
312
+ * fetch through all shadow roots
331
313
  */
332
- ...shadowRoots.map((shadowRootNodeId) => browser.findElementsFromShadowRoot(shadowRootNodeId, using, value)
333
- .then(elementPromiseHandler(handle, shadowRootManager, shadowRootNodeId), elementPromiseHandler(handle, shadowRootManager, shadowRootNodeId)).then(async (res) => {
334
- if (!res) {
335
- return;
336
- }
337
- if ('elementId' in this) {
338
- const allElementsWithinScope = await Promise.all(res.map((el) => isWithinElementScope(el, this, handle)
339
- .then((isWithinScope) => isWithinScope ? el : undefined)));
340
- return allElementsWithinScope.filter(Boolean);
341
- }
342
- return res;
343
- }))
344
- ]);
345
- /**
346
- * lastly, we filter all elements that are not defined, e.g. not found
347
- * or not within the scope of the host element
348
- */
349
- return deepElementsResult.flat().filter(Boolean);
314
+ ...shadowRoots.map((shadowRootNodeId) => browser.findElementsFromShadowRoot(shadowRootNodeId, using, value).then(elementPromiseHandler(handle, shadowRootManager), elementPromiseHandler(handle, shadowRootManager)))
315
+ ])).filter(Boolean);
316
+ return deepElementResult.flat();
350
317
  }
351
318
  /**
352
319
  * logic to find an element
@@ -354,6 +321,15 @@ export async function findDeepElements(selector) {
354
321
  */
355
322
  export async function findElement(selector) {
356
323
  const browserObject = getBrowserObject(this);
324
+ /**
325
+ * do a deep lookup if
326
+ * - we are using Bidi
327
+ * - have a string selector
328
+ * - that is not a deep selector
329
+ */
330
+ if (this.isBidi && typeof selector === 'string' && !selector.startsWith(DEEP_SELECTOR)) {
331
+ return findDeepElement.call(this, selector);
332
+ }
357
333
  /**
358
334
  * check if shadow DOM integration is used
359
335
  */
@@ -649,4 +625,3 @@ export const containsHeaderObject = (base, match) => {
649
625
  }
650
626
  return true;
651
627
  };
652
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkNBQTZDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRTlCLE9BQU8sUUFBUSxNQUFNLFdBQVcsQ0FBQTtBQUNoQyxPQUFPLE9BQU8sTUFBTSxTQUFTLENBQUE7QUFDN0IsT0FBTyxnQkFBZ0IsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFDakMsT0FBTyxhQUFhLE1BQU0sY0FBYyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUdsRixPQUFPLEtBQUssZUFBZSxNQUFNLHdCQUF3QixDQUFBO0FBQ3pELE9BQU8sS0FBSyxlQUFlLE1BQU0sd0JBQXdCLENBQUE7QUFDekQsT0FBTyxZQUFZLE1BQU0sNEJBQTRCLENBQUE7QUFDckQsT0FBTyxvQkFBb0IsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQTBCLE1BQU0sa0JBQWtCLENBQUE7QUFJL0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ2pDLE1BQU0sc0JBQXNCLEdBQUcsb0RBQW9ELENBQUE7QUFDbkYsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLGVBQWUsRUFBRSxjQUFj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
@@ -1,27 +1,81 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
- import EventEmitter from 'node:events';
2
+ import { type JsonCompatible } from '@wdio/types';
3
+ import { type local } from 'webdriver';
4
+ import { URLPattern } from 'urlpattern-polyfill';
5
+ import type { MockOptions, RespondWithOptions } from './types.js';
3
6
  import type { WaitForOptions } from '../../types.js';
4
- import type { MockFilterOptions, MockOverwrite, MockResponseParams, Matches, ErrorReason } from './types.js';
5
- export default abstract class Interception extends EventEmitter {
6
- url: string | RegExp;
7
- filterOptions: MockFilterOptions;
8
- browser: WebdriverIO.Browser;
9
- abstract calls: Matches[] | Promise<Matches[]>;
10
- abstract clear(): void;
11
- abstract restore(): Promise<void>;
12
- abstract respond(overwrite: MockOverwrite, params: MockResponseParams): void;
13
- abstract respondOnce(overwrite: MockOverwrite, params: MockResponseParams): void;
14
- abstract abort(errorReason: ErrorReason, sticky: boolean): void;
15
- abstract abortOnce(errorReason: ErrorReason): void;
16
- respondOverwrites: {
17
- overwrite?: MockOverwrite;
18
- params?: MockResponseParams;
19
- sticky?: boolean;
20
- errorReason?: ErrorReason;
21
- }[];
22
- matches: Matches[];
23
- constructor(url: string | RegExp, filterOptions: MockFilterOptions, browser: WebdriverIO.Browser);
7
+ type RespondBody = string | JsonCompatible | Buffer;
8
+ /**
9
+ * Network interception class based on a WebDriver Bidi implementation.
10
+ *
11
+ * Note: this code is executed in Node.js and in the browser, so make sure
12
+ * you use primitives that work in both environments.
13
+ */
14
+ export default class WebDriverInterception {
15
+ #private;
16
+ private constructor();
17
+ static initiate(url: string,
18
+ /**
19
+ * ToDo(Christian): incorporate filterOptions
20
+ */
21
+ filterOptions: MockOptions, browser: WebdriverIO.Browser): Promise<WebDriverInterception>;
22
+ /**
23
+ * allows access to all requests made with given pattern
24
+ */
25
+ get calls(): local.NetworkResponseCompletedParameters[];
26
+ /**
27
+ * Resets all information stored in the `mock.calls` set.
28
+ */
29
+ clear(): this;
30
+ /**
31
+ * Does what `mock.clear()` does and makes removes custom request overrides
32
+ * and response overwrites
33
+ */
34
+ reset(): this;
35
+ /**
36
+ * Does everything that `mock.reset()` does, and also
37
+ * removes any mocked return values or implementations.
38
+ * Restored mock does not emit events and could not mock responses
39
+ */
40
+ restore(): Promise<this>;
41
+ /**
42
+ * Always respond with same overwrite
43
+ * @param {*} overwrites payload to overwrite the response
44
+ * @param {*} params additional respond parameters to overwrite
45
+ * @param {boolean} once apply overwrite only once for the next request
46
+ */
47
+ respond(payload: RespondBody, params?: Omit<RespondWithOptions, 'body'>, once?: boolean): this;
48
+ /**
49
+ * alias for `mock.respond(…, true)`
50
+ */
51
+ respondOnce(payload: RespondBody, params?: Omit<RespondWithOptions, 'body'>): this;
52
+ /**
53
+ * Abort the request with an error code
54
+ * @param {string} errorReason error code of the response
55
+ * @param {boolean} once if request should be aborted only once for the next request
56
+ */
57
+ abort(once?: boolean): this;
58
+ /**
59
+ * alias for `mock.abort(true)`
60
+ */
61
+ abortOnce(): this;
62
+ /**
63
+ * Redirect request to another URL
64
+ * @param {string} redirectUrl URL to redirect to
65
+ * @param {boolean} sticky if request should be redirected for all following requests
66
+ */
67
+ redirect(redirectUrl: string, once?: boolean): this;
68
+ /**
69
+ * alias for `mock.redirect(…, true)`
70
+ */
71
+ redirectOnce(redirectUrl: string): this;
72
+ on(event: 'request', callback: (request: local.NetworkBeforeRequestSentParameters) => void): WebDriverInterception;
73
+ on(event: 'match', callback: (match: local.NetworkBeforeRequestSentParameters) => void): WebDriverInterception;
74
+ on(event: 'continue', callback: (requestId: string) => void): WebDriverInterception;
75
+ on(event: 'fail', callback: (requestId: string) => void): WebDriverInterception;
76
+ on(event: 'overwrite', callback: (response: local.NetworkResponseCompletedParameters) => void): WebDriverInterception;
24
77
  waitForResponse({ timeout, interval, timeoutMsg, }?: WaitForOptions): Promise<boolean> | Promise<Promise<boolean>>;
25
- static isMatchingRequest(expectedUrl: string | RegExp, actualUrl: string): boolean;
26
78
  }
79
+ export declare function parseUrlPattern(url: string | URLPattern): URLPattern;
80
+ export {};
27
81
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/interception/index.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,aAAa,CAAA;AAKtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE5G,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,YAAa,SAAQ,YAAY;IAkBhD,GAAG,EAAE,MAAM,GAAG,MAAM;IACpB,aAAa,EAAE,iBAAiB;IAChC,OAAO,EAAE,WAAW,CAAC,OAAO;IAnBvC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9C,QAAQ,CAAC,KAAK,IAAK,IAAI;IACvB,QAAQ,CAAC,OAAO,IAAK,OAAO,CAAC,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAC7E,QAAQ,CAAC,WAAW,CAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI;IACjF,QAAQ,CAAC,KAAK,CAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAChE,QAAQ,CAAC,SAAS,CAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAEnD,iBAAiB,EAAE;QACf,SAAS,CAAC,EAAE,aAAa,CAAA;QACzB,MAAM,CAAC,EAAE,kBAAkB,CAAA;QAC3B,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,WAAW,CAAC,EAAE,WAAW,CAAA;KAC5B,EAAE,CAAK;IACR,OAAO,EAAE,OAAO,EAAE,CAAK;gBAGZ,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,aAAa,EAAE,iBAAsB,EACrC,OAAO,EAAE,WAAW,CAAC,OAAO;IAKvC,eAAe,CAAE,EACb,OAA6C,EAC7C,QAA+C,EAC/C,UAAU,GACb,GAAE,cAAmB;IA4BtB,MAAM,CAAC,iBAAiB,CAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM;CAU5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/interception/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAKhD,OAAO,KAAK,EAAE,WAAW,EAAsB,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,KAAK,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,MAAM,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;;IAetC,OAAO;WAgBM,QAAQ,CACjB,GAAG,EAAE,MAAM;IACX;;OAEG;IACH,aAAa,EAAE,WAAW,EAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;IA6JhC;;OAEG;IACH,IAAI,KAAK,+CAER;IAED;;OAEG;IACH,KAAK;IAKL;;;OAGG;IACH,KAAK;IAML;;;;OAIG;IACG,OAAO;IAgBb;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAY3F;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,GAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAM;IAI/E;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO;IAMpB;;OAEG;IACH,SAAS;IAIT;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;IAO5C;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM;IAIhC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,kCAAkC,KAAK,IAAI,GAAG,qBAAqB;IAClH,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kCAAkC,KAAK,IAAI,GAAG,qBAAqB;IAC9G,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,qBAAqB;IACnF,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,qBAAqB;IAC/E,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,kCAAkC,KAAK,IAAI,GAAG,qBAAqB;IAYrH,eAAe,CAAE,EACb,OAA8C,EAC9C,QAAgD,EAChD,UAAU,GACb,GAAE,cAAmB;CA2BzB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,cAqBvD"}