@serenity-js/webdriverio-8 3.31.0

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 (285) hide show
  1. package/CHANGELOG.md +1232 -0
  2. package/LICENSE.md +201 -0
  3. package/NOTICE.md +1 -0
  4. package/README.md +234 -0
  5. package/esm/adapter/TestRunnerLoader.d.ts +17 -0
  6. package/esm/adapter/TestRunnerLoader.d.ts.map +1 -0
  7. package/esm/adapter/TestRunnerLoader.js +63 -0
  8. package/esm/adapter/TestRunnerLoader.js.map +1 -0
  9. package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts +25 -0
  10. package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -0
  11. package/esm/adapter/WebdriverIOFrameworkAdapter.js +90 -0
  12. package/esm/adapter/WebdriverIOFrameworkAdapter.js.map +1 -0
  13. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +18 -0
  14. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -0
  15. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js +18 -0
  16. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -0
  17. package/esm/adapter/WebdriverIONotifier.d.ts +71 -0
  18. package/esm/adapter/WebdriverIONotifier.d.ts.map +1 -0
  19. package/esm/adapter/WebdriverIONotifier.js +390 -0
  20. package/esm/adapter/WebdriverIONotifier.js.map +1 -0
  21. package/esm/adapter/index.d.ts +2 -0
  22. package/esm/adapter/index.d.ts.map +1 -0
  23. package/esm/adapter/index.js +2 -0
  24. package/esm/adapter/index.js.map +1 -0
  25. package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts +18 -0
  26. package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -0
  27. package/esm/adapter/reporter/BrowserCapabilitiesReporter.js +42 -0
  28. package/esm/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -0
  29. package/esm/adapter/reporter/InitialisesReporters.d.ts +8 -0
  30. package/esm/adapter/reporter/InitialisesReporters.d.ts.map +1 -0
  31. package/esm/adapter/reporter/InitialisesReporters.js +2 -0
  32. package/esm/adapter/reporter/InitialisesReporters.js.map +1 -0
  33. package/esm/adapter/reporter/OutputStreamBuffer.d.ts +13 -0
  34. package/esm/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -0
  35. package/esm/adapter/reporter/OutputStreamBuffer.js +25 -0
  36. package/esm/adapter/reporter/OutputStreamBuffer.js.map +1 -0
  37. package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts +16 -0
  38. package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -0
  39. package/esm/adapter/reporter/OutputStreamBufferPrinter.js +24 -0
  40. package/esm/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -0
  41. package/esm/adapter/reporter/ProvidesWriteStream.d.ts +8 -0
  42. package/esm/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -0
  43. package/esm/adapter/reporter/ProvidesWriteStream.js +2 -0
  44. package/esm/adapter/reporter/ProvidesWriteStream.js.map +1 -0
  45. package/esm/adapter/reporter/TagPrinter.d.ts +17 -0
  46. package/esm/adapter/reporter/TagPrinter.d.ts.map +1 -0
  47. package/esm/adapter/reporter/TagPrinter.js +52 -0
  48. package/esm/adapter/reporter/TagPrinter.js.map +1 -0
  49. package/esm/adapter/reporter/index.d.ts +6 -0
  50. package/esm/adapter/reporter/index.d.ts.map +1 -0
  51. package/esm/adapter/reporter/index.js +6 -0
  52. package/esm/adapter/reporter/index.js.map +1 -0
  53. package/esm/api.d.ts +3 -0
  54. package/esm/api.d.ts.map +1 -0
  55. package/esm/api.js +2 -0
  56. package/esm/api.js.map +1 -0
  57. package/esm/config/WebdriverIOConfig.d.ts +95 -0
  58. package/esm/config/WebdriverIOConfig.d.ts.map +1 -0
  59. package/esm/config/WebdriverIOConfig.js +2 -0
  60. package/esm/config/WebdriverIOConfig.js.map +1 -0
  61. package/esm/config/index.d.ts +2 -0
  62. package/esm/config/index.d.ts.map +1 -0
  63. package/esm/config/index.js +2 -0
  64. package/esm/config/index.js.map +1 -0
  65. package/esm/index.d.ts +16 -0
  66. package/esm/index.d.ts.map +1 -0
  67. package/esm/index.js +14 -0
  68. package/esm/index.js.map +1 -0
  69. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +40 -0
  70. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -0
  71. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +43 -0
  72. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -0
  73. package/esm/screenplay/abilities/index.d.ts +2 -0
  74. package/esm/screenplay/abilities/index.d.ts.map +1 -0
  75. package/esm/screenplay/abilities/index.js +2 -0
  76. package/esm/screenplay/abilities/index.js.map +1 -0
  77. package/esm/screenplay/index.d.ts +3 -0
  78. package/esm/screenplay/index.d.ts.map +1 -0
  79. package/esm/screenplay/index.js +3 -0
  80. package/esm/screenplay/index.js.map +1 -0
  81. package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts +25 -0
  82. package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -0
  83. package/esm/screenplay/models/WebdriverIOBrowsingSession.js +125 -0
  84. package/esm/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -0
  85. package/esm/screenplay/models/WebdriverIOCookie.d.ts +15 -0
  86. package/esm/screenplay/models/WebdriverIOCookie.d.ts.map +1 -0
  87. package/esm/screenplay/models/WebdriverIOCookie.js +42 -0
  88. package/esm/screenplay/models/WebdriverIOCookie.js.map +1 -0
  89. package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts +9 -0
  90. package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -0
  91. package/esm/screenplay/models/WebdriverIOErrorHandler.js +20 -0
  92. package/esm/screenplay/models/WebdriverIOErrorHandler.js.map +1 -0
  93. package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts +27 -0
  94. package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -0
  95. package/esm/screenplay/models/WebdriverIOModalDialogHandler.js +74 -0
  96. package/esm/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -0
  97. package/esm/screenplay/models/WebdriverIOPage.d.ts +50 -0
  98. package/esm/screenplay/models/WebdriverIOPage.d.ts.map +1 -0
  99. package/esm/screenplay/models/WebdriverIOPage.js +219 -0
  100. package/esm/screenplay/models/WebdriverIOPage.js.map +1 -0
  101. package/esm/screenplay/models/WebdriverIOPageElement.d.ts +34 -0
  102. package/esm/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -0
  103. package/esm/screenplay/models/WebdriverIOPageElement.js +220 -0
  104. package/esm/screenplay/models/WebdriverIOPageElement.js.map +1 -0
  105. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +30 -0
  106. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -0
  107. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js +77 -0
  108. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -0
  109. package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts +39 -0
  110. package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts.map +1 -0
  111. package/esm/screenplay/models/WebdriverProtocolErrorCode.js +40 -0
  112. package/esm/screenplay/models/WebdriverProtocolErrorCode.js.map +1 -0
  113. package/esm/screenplay/models/index.d.ts +5 -0
  114. package/esm/screenplay/models/index.d.ts.map +1 -0
  115. package/esm/screenplay/models/index.js +5 -0
  116. package/esm/screenplay/models/index.js.map +1 -0
  117. package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts +33 -0
  118. package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -0
  119. package/esm/screenplay/models/locators/WebdriverIOLocator.js +123 -0
  120. package/esm/screenplay/models/locators/WebdriverIOLocator.js.map +1 -0
  121. package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts +17 -0
  122. package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -0
  123. package/esm/screenplay/models/locators/WebdriverIORootLocator.js +30 -0
  124. package/esm/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -0
  125. package/esm/screenplay/models/locators/index.d.ts +3 -0
  126. package/esm/screenplay/models/locators/index.d.ts.map +1 -0
  127. package/esm/screenplay/models/locators/index.js +3 -0
  128. package/esm/screenplay/models/locators/index.js.map +1 -0
  129. package/lib/adapter/TestRunnerLoader.d.ts +17 -0
  130. package/lib/adapter/TestRunnerLoader.d.ts.map +1 -0
  131. package/lib/adapter/TestRunnerLoader.js +67 -0
  132. package/lib/adapter/TestRunnerLoader.js.map +1 -0
  133. package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts +25 -0
  134. package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -0
  135. package/lib/adapter/WebdriverIOFrameworkAdapter.js +127 -0
  136. package/lib/adapter/WebdriverIOFrameworkAdapter.js.map +1 -0
  137. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +18 -0
  138. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -0
  139. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js +22 -0
  140. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -0
  141. package/lib/adapter/WebdriverIONotifier.d.ts +71 -0
  142. package/lib/adapter/WebdriverIONotifier.d.ts.map +1 -0
  143. package/lib/adapter/WebdriverIONotifier.js +394 -0
  144. package/lib/adapter/WebdriverIONotifier.js.map +1 -0
  145. package/lib/adapter/index.d.ts +2 -0
  146. package/lib/adapter/index.d.ts.map +1 -0
  147. package/lib/adapter/index.js +18 -0
  148. package/lib/adapter/index.js.map +1 -0
  149. package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts +18 -0
  150. package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -0
  151. package/lib/adapter/reporter/BrowserCapabilitiesReporter.js +49 -0
  152. package/lib/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -0
  153. package/lib/adapter/reporter/InitialisesReporters.d.ts +8 -0
  154. package/lib/adapter/reporter/InitialisesReporters.d.ts.map +1 -0
  155. package/lib/adapter/reporter/InitialisesReporters.js +3 -0
  156. package/lib/adapter/reporter/InitialisesReporters.js.map +1 -0
  157. package/lib/adapter/reporter/OutputStreamBuffer.d.ts +13 -0
  158. package/lib/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -0
  159. package/lib/adapter/reporter/OutputStreamBuffer.js +29 -0
  160. package/lib/adapter/reporter/OutputStreamBuffer.js.map +1 -0
  161. package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts +16 -0
  162. package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -0
  163. package/lib/adapter/reporter/OutputStreamBufferPrinter.js +28 -0
  164. package/lib/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -0
  165. package/lib/adapter/reporter/ProvidesWriteStream.d.ts +8 -0
  166. package/lib/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -0
  167. package/lib/adapter/reporter/ProvidesWriteStream.js +3 -0
  168. package/lib/adapter/reporter/ProvidesWriteStream.js.map +1 -0
  169. package/lib/adapter/reporter/TagPrinter.d.ts +17 -0
  170. package/lib/adapter/reporter/TagPrinter.d.ts.map +1 -0
  171. package/lib/adapter/reporter/TagPrinter.js +56 -0
  172. package/lib/adapter/reporter/TagPrinter.js.map +1 -0
  173. package/lib/adapter/reporter/index.d.ts +6 -0
  174. package/lib/adapter/reporter/index.d.ts.map +1 -0
  175. package/lib/adapter/reporter/index.js +22 -0
  176. package/lib/adapter/reporter/index.js.map +1 -0
  177. package/lib/api.d.ts +3 -0
  178. package/lib/api.d.ts.map +1 -0
  179. package/lib/api.js +18 -0
  180. package/lib/api.js.map +1 -0
  181. package/lib/config/WebdriverIOConfig.d.ts +95 -0
  182. package/lib/config/WebdriverIOConfig.d.ts.map +1 -0
  183. package/lib/config/WebdriverIOConfig.js +3 -0
  184. package/lib/config/WebdriverIOConfig.js.map +1 -0
  185. package/lib/config/index.d.ts +2 -0
  186. package/lib/config/index.d.ts.map +1 -0
  187. package/lib/config/index.js +18 -0
  188. package/lib/config/index.js.map +1 -0
  189. package/lib/index.d.ts +16 -0
  190. package/lib/index.d.ts.map +1 -0
  191. package/lib/index.js +52 -0
  192. package/lib/index.js.map +1 -0
  193. package/lib/package.json +1 -0
  194. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +40 -0
  195. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -0
  196. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +47 -0
  197. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -0
  198. package/lib/screenplay/abilities/index.d.ts +2 -0
  199. package/lib/screenplay/abilities/index.d.ts.map +1 -0
  200. package/lib/screenplay/abilities/index.js +18 -0
  201. package/lib/screenplay/abilities/index.js.map +1 -0
  202. package/lib/screenplay/index.d.ts +3 -0
  203. package/lib/screenplay/index.d.ts.map +1 -0
  204. package/lib/screenplay/index.js +19 -0
  205. package/lib/screenplay/index.js.map +1 -0
  206. package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts +25 -0
  207. package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -0
  208. package/lib/screenplay/models/WebdriverIOBrowsingSession.js +129 -0
  209. package/lib/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -0
  210. package/lib/screenplay/models/WebdriverIOCookie.d.ts +15 -0
  211. package/lib/screenplay/models/WebdriverIOCookie.d.ts.map +1 -0
  212. package/lib/screenplay/models/WebdriverIOCookie.js +46 -0
  213. package/lib/screenplay/models/WebdriverIOCookie.js.map +1 -0
  214. package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts +9 -0
  215. package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -0
  216. package/lib/screenplay/models/WebdriverIOErrorHandler.js +24 -0
  217. package/lib/screenplay/models/WebdriverIOErrorHandler.js.map +1 -0
  218. package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts +27 -0
  219. package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -0
  220. package/lib/screenplay/models/WebdriverIOModalDialogHandler.js +78 -0
  221. package/lib/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -0
  222. package/lib/screenplay/models/WebdriverIOPage.d.ts +50 -0
  223. package/lib/screenplay/models/WebdriverIOPage.d.ts.map +1 -0
  224. package/lib/screenplay/models/WebdriverIOPage.js +256 -0
  225. package/lib/screenplay/models/WebdriverIOPage.js.map +1 -0
  226. package/lib/screenplay/models/WebdriverIOPageElement.d.ts +34 -0
  227. package/lib/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -0
  228. package/lib/screenplay/models/WebdriverIOPageElement.js +257 -0
  229. package/lib/screenplay/models/WebdriverIOPageElement.js.map +1 -0
  230. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +30 -0
  231. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -0
  232. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js +81 -0
  233. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -0
  234. package/lib/screenplay/models/WebdriverProtocolErrorCode.d.ts +39 -0
  235. package/lib/screenplay/models/WebdriverProtocolErrorCode.d.ts.map +1 -0
  236. package/lib/screenplay/models/WebdriverProtocolErrorCode.js +43 -0
  237. package/lib/screenplay/models/WebdriverProtocolErrorCode.js.map +1 -0
  238. package/lib/screenplay/models/index.d.ts +5 -0
  239. package/lib/screenplay/models/index.d.ts.map +1 -0
  240. package/lib/screenplay/models/index.js +21 -0
  241. package/lib/screenplay/models/index.js.map +1 -0
  242. package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts +33 -0
  243. package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -0
  244. package/lib/screenplay/models/locators/WebdriverIOLocator.js +128 -0
  245. package/lib/screenplay/models/locators/WebdriverIOLocator.js.map +1 -0
  246. package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts +17 -0
  247. package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -0
  248. package/lib/screenplay/models/locators/WebdriverIORootLocator.js +34 -0
  249. package/lib/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -0
  250. package/lib/screenplay/models/locators/index.d.ts +3 -0
  251. package/lib/screenplay/models/locators/index.d.ts.map +1 -0
  252. package/lib/screenplay/models/locators/index.js +19 -0
  253. package/lib/screenplay/models/locators/index.js.map +1 -0
  254. package/package.json +122 -0
  255. package/src/adapter/TestRunnerLoader.ts +90 -0
  256. package/src/adapter/WebdriverIOFrameworkAdapter.ts +130 -0
  257. package/src/adapter/WebdriverIOFrameworkAdapterFactory.ts +39 -0
  258. package/src/adapter/WebdriverIONotifier.ts +480 -0
  259. package/src/adapter/index.ts +1 -0
  260. package/src/adapter/reporter/BrowserCapabilitiesReporter.ts +63 -0
  261. package/src/adapter/reporter/InitialisesReporters.ts +8 -0
  262. package/src/adapter/reporter/OutputStreamBuffer.ts +30 -0
  263. package/src/adapter/reporter/OutputStreamBufferPrinter.ts +30 -0
  264. package/src/adapter/reporter/ProvidesWriteStream.ts +8 -0
  265. package/src/adapter/reporter/TagPrinter.ts +69 -0
  266. package/src/adapter/reporter/index.ts +5 -0
  267. package/src/api.ts +2 -0
  268. package/src/config/WebdriverIOConfig.ts +94 -0
  269. package/src/config/index.ts +1 -0
  270. package/src/index.ts +32 -0
  271. package/src/screenplay/abilities/BrowseTheWebWithWebdriverIO.ts +46 -0
  272. package/src/screenplay/abilities/index.ts +1 -0
  273. package/src/screenplay/index.ts +2 -0
  274. package/src/screenplay/models/WebdriverIOBrowsingSession.ts +176 -0
  275. package/src/screenplay/models/WebdriverIOCookie.ts +51 -0
  276. package/src/screenplay/models/WebdriverIOErrorHandler.ts +25 -0
  277. package/src/screenplay/models/WebdriverIOModalDialogHandler.ts +99 -0
  278. package/src/screenplay/models/WebdriverIOPage.ts +311 -0
  279. package/src/screenplay/models/WebdriverIOPageElement.ts +280 -0
  280. package/src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts +100 -0
  281. package/src/screenplay/models/WebdriverProtocolErrorCode.ts +38 -0
  282. package/src/screenplay/models/index.ts +4 -0
  283. package/src/screenplay/models/locators/WebdriverIOLocator.ts +176 -0
  284. package/src/screenplay/models/locators/WebdriverIORootLocator.ts +34 -0
  285. package/src/screenplay/models/locators/index.ts +2 -0
@@ -0,0 +1,34 @@
1
+ import 'webdriverio';
2
+ import type { SwitchableOrigin } from '@serenity-js/web';
3
+ import { PageElement, SelectOption } from '@serenity-js/web';
4
+ /**
5
+ * WebdriverIO-specific implementation of [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
6
+ *
7
+ * @group Models
8
+ */
9
+ export declare class WebdriverIOPageElement extends PageElement<WebdriverIO.Element> {
10
+ of(parent: WebdriverIOPageElement): WebdriverIOPageElement;
11
+ closestTo(child: WebdriverIOPageElement): WebdriverIOPageElement;
12
+ clearValue(): Promise<void>;
13
+ click(): Promise<void>;
14
+ doubleClick(): Promise<void>;
15
+ enterValue(value: string | number | Array<string | number>): Promise<void>;
16
+ scrollIntoView(): Promise<void>;
17
+ hoverOver(): Promise<void>;
18
+ rightClick(): Promise<void>;
19
+ selectOptions(...options: SelectOption[]): Promise<void>;
20
+ selectedOptions(): Promise<SelectOption[]>;
21
+ attribute(name: string): Promise<string>;
22
+ text(): Promise<string>;
23
+ value(): Promise<string>;
24
+ html(): Promise<string>;
25
+ switchTo(): Promise<SwitchableOrigin>;
26
+ isActive(): Promise<boolean>;
27
+ isClickable(): Promise<boolean>;
28
+ isEnabled(): Promise<boolean>;
29
+ isPresent(): Promise<boolean>;
30
+ isSelected(): Promise<boolean>;
31
+ isVisible(): Promise<boolean>;
32
+ private browserFor;
33
+ }
34
+ //# sourceMappingURL=WebdriverIOPageElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOPageElement.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOPageElement.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAO,WAAW,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMlE;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;IACxE,EAAE,CAAC,MAAM,EAAE,sBAAsB,GAAG,sBAAsB;IAI1D,SAAS,CAAC,KAAK,EAAE,sBAAsB,GAAG,sBAAsB;IAI1D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1E,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAK1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,aAAa,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,eAAe,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IA4B1C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKxC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAKvB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAKxB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAKvB,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA4DrC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAK5B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAK/B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAK7B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAK7B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAK9B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;YAgCrB,UAAU;CAM3B"}
@@ -0,0 +1,220 @@
1
+ import 'webdriverio';
2
+ import { LogicError } from '@serenity-js/core';
3
+ import { Key, PageElement, SelectOption } from '@serenity-js/web';
4
+ import * as scripts from '@serenity-js/web/lib/scripts/index.js';
5
+ import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode.js';
6
+ /**
7
+ * WebdriverIO-specific implementation of [`PageElement`](https://serenity-js.org/api/web/class/PageElement/).
8
+ *
9
+ * @group Models
10
+ */
11
+ export class WebdriverIOPageElement extends PageElement {
12
+ of(parent) {
13
+ return new WebdriverIOPageElement(this.locator.of(parent.locator));
14
+ }
15
+ closestTo(child) {
16
+ return new WebdriverIOPageElement(this.locator.closestTo(child.locator));
17
+ }
18
+ async clearValue() {
19
+ // eslint-disable-next-line unicorn/consistent-function-scoping
20
+ function times(length, key) {
21
+ return Array.from({ length }).map(() => key);
22
+ }
23
+ // eslint-disable-next-line unicorn/consistent-function-scoping
24
+ async function removeCharactersFrom(browser, inputElement, numberOfCharacters) {
25
+ await browser.execute(
26
+ /* c8 ignore next */
27
+ function focusOn(element) {
28
+ element.focus();
29
+ }, element);
30
+ await browser.keys([
31
+ Key.Home.utf16codePoint,
32
+ ...times(numberOfCharacters, Key.Delete.utf16codePoint),
33
+ ]);
34
+ }
35
+ const element = await this.nativeElement();
36
+ const value = await this.value();
37
+ const hasValue = value !== null && value !== undefined && value.length > 0;
38
+ const browser = await this.browserFor(element);
39
+ if (hasValue) {
40
+ return await removeCharactersFrom(browser, element, value.length);
41
+ }
42
+ const contentEditable = await element.getAttribute('contenteditable');
43
+ const hasContentEditable = contentEditable !== null && contentEditable !== undefined && contentEditable !== 'false';
44
+ if (hasContentEditable) {
45
+ const text = await element.getText();
46
+ return await removeCharactersFrom(browser, element, text.length);
47
+ }
48
+ }
49
+ async click() {
50
+ const element = await this.nativeElement();
51
+ await element.click();
52
+ }
53
+ async doubleClick() {
54
+ const element = await this.nativeElement();
55
+ await element.doubleClick();
56
+ }
57
+ async enterValue(value) {
58
+ const text = Array.isArray(value) ? value.join('') : value;
59
+ const element = await this.nativeElement();
60
+ await element.addValue(text);
61
+ }
62
+ async scrollIntoView() {
63
+ const element = await this.nativeElement();
64
+ await element.scrollIntoView();
65
+ }
66
+ async hoverOver() {
67
+ const element = await this.nativeElement();
68
+ await element.moveTo();
69
+ }
70
+ async rightClick() {
71
+ const element = await this.nativeElement();
72
+ await element.click({ button: 'right' });
73
+ }
74
+ async selectOptions(...options) {
75
+ const element = await this.nativeElement();
76
+ for (const option of options) {
77
+ if (option.value) {
78
+ await element.selectByAttribute('value', option.value);
79
+ }
80
+ else if (option.label) {
81
+ await element.selectByVisibleText(option.label);
82
+ }
83
+ }
84
+ }
85
+ async selectedOptions() {
86
+ const element = await this.nativeElement();
87
+ const browser = await this.browserFor(element);
88
+ const options = await browser.execute(
89
+ /* c8 ignore start */
90
+ (select) => {
91
+ const options = [];
92
+ select.querySelectorAll('option').forEach((option) => {
93
+ options.push({
94
+ selected: option.selected,
95
+ disabled: option.disabled,
96
+ label: option.label,
97
+ value: option.value,
98
+ });
99
+ });
100
+ return options;
101
+ }, element
102
+ /* c8 ignore stop */
103
+ );
104
+ return options.map(option => new SelectOption(option.label, option.value, option.selected, option.disabled));
105
+ }
106
+ async attribute(name) {
107
+ const element = await this.nativeElement();
108
+ return await element.getAttribute(name);
109
+ }
110
+ async text() {
111
+ const element = await this.nativeElement();
112
+ return await element.getText();
113
+ }
114
+ async value() {
115
+ const element = await this.nativeElement();
116
+ return await element.getValue();
117
+ }
118
+ async html() {
119
+ const element = await this.nativeElement();
120
+ return await element.getHTML(true);
121
+ }
122
+ async switchTo() {
123
+ try {
124
+ const element = await this.locator.nativeElement();
125
+ if (element.error) {
126
+ throw element.error;
127
+ }
128
+ const tagName = await element.getTagName();
129
+ const browser = await this.browserFor(element);
130
+ if (['iframe', 'frame'].includes(tagName)) {
131
+ const locator = this.locator;
132
+ await locator.switchToFrame(element);
133
+ return {
134
+ switchBack: async () => {
135
+ try {
136
+ await locator.switchToParentFrame();
137
+ }
138
+ catch {
139
+ // switchToParentFrame doesn't work on iOS devices, so we need a workaround
140
+ // https://github.com/appium/appium/issues/14882#issuecomment-1693326102
141
+ await locator.switchToFrame(null); // eslint-disable-line unicorn/no-null
142
+ }
143
+ }
144
+ };
145
+ }
146
+ else {
147
+ // focus on element
148
+ const previouslyFocusedElement = await browser.execute(
149
+ /* c8 ignore next */
150
+ function focusOn(element) {
151
+ const currentlyFocusedElement = document.activeElement;
152
+ element.focus();
153
+ return currentlyFocusedElement;
154
+ }, element);
155
+ return {
156
+ switchBack: async () => {
157
+ await browser.execute(
158
+ /* c8 ignore next */
159
+ function focusOn(element) {
160
+ element.focus();
161
+ }, previouslyFocusedElement);
162
+ }
163
+ };
164
+ }
165
+ }
166
+ catch (error) {
167
+ throw new LogicError(`Couldn't switch to page element located ${this.locator}`, error);
168
+ }
169
+ }
170
+ async isActive() {
171
+ const element = await this.nativeElement();
172
+ return await element.isFocused();
173
+ }
174
+ async isClickable() {
175
+ const element = await this.nativeElement();
176
+ return await element.isClickable();
177
+ }
178
+ async isEnabled() {
179
+ const element = await this.nativeElement();
180
+ return await element.isEnabled();
181
+ }
182
+ async isPresent() {
183
+ const element = await this.nativeElement();
184
+ return await element.isExisting();
185
+ }
186
+ async isSelected() {
187
+ const element = await this.nativeElement();
188
+ return await element.isSelected();
189
+ }
190
+ async isVisible() {
191
+ try {
192
+ const element = await this.nativeElement();
193
+ if (!await element.isDisplayed()) {
194
+ return false;
195
+ }
196
+ if (!await element.isDisplayedInViewport()) {
197
+ return false;
198
+ }
199
+ const browser = await this.browserFor(element);
200
+ return await browser.execute(scripts.isVisible, element);
201
+ }
202
+ catch (error) {
203
+ // an element that doesn't exist is treated as not visible
204
+ if (error.name === WebdriverProtocolErrorCode.NoSuchElementError ||
205
+ error.error === WebdriverProtocolErrorCode.NoSuchElementError ||
206
+ /element.*not found/i.test(error.message)) {
207
+ return false;
208
+ }
209
+ throw error;
210
+ }
211
+ }
212
+ // based on https://github.com/webdriverio/webdriverio/blob/dec6da76b0e218af935dbf39735ae3491d5edd8c/packages/webdriverio/src/utils/index.ts#L98
213
+ async browserFor(nativeElement) {
214
+ const element = nativeElement;
215
+ return element.parent
216
+ ? this.browserFor(element.parent)
217
+ : nativeElement;
218
+ }
219
+ }
220
+ //# sourceMappingURL=WebdriverIOPageElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOPageElement.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOPageElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ModalDialog } from '@serenity-js/web';
2
+ import { ModalDialogHandler } from '@serenity-js/web';
3
+ import type { Page } from 'puppeteer-core';
4
+ /**
5
+ * WebdriverIO-specific implementation of [`ModalDialogHandler`](https://serenity-js.org/api/web/class/ModalDialogHandler/), applicable when WebdriverIO
6
+ * uses [Puppeteer](https://developer.chrome.com/docs/puppeteer/).
7
+ *
8
+ * Automatically handles any simple JavaScript modal dialog windows, such as
9
+ * those opened by [`window.alert()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/alert),
10
+ * [`window.confirm()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm),
11
+ * or [`window.prompt()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt).
12
+ *
13
+ * This helps to avoid Puppeteer hanging when there's an interaction pending
14
+ * and a dialog is already open, see https://github.com/puppeteer/puppeteer/issues/2481
15
+ */
16
+ export declare class WebdriverIOPuppeteerModalDialogHandler extends ModalDialogHandler {
17
+ private readonly page;
18
+ private dialogHandlingInProgress;
19
+ private readonly defaultHandler;
20
+ private currentHandler;
21
+ constructor(page: Page);
22
+ acceptNext(): Promise<void>;
23
+ acceptNextWithValue(text: string | number): Promise<void>;
24
+ dismissNext(): Promise<void>;
25
+ reset(): Promise<void>;
26
+ discard(): Promise<void>;
27
+ last(): Promise<ModalDialog>;
28
+ private handleModalDialog;
29
+ }
30
+ //# sourceMappingURL=WebdriverIOPuppeteerModalDialogHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOPuppeteerModalDialogHandler.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EAAC,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAIH,kBAAkB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAU,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;;;;;;;;GAWG;AACH,qBAAa,sCAAuC,SAAQ,kBAAkB;IAY9D,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,OAAO,CAAC,wBAAwB,CAAS;IAEzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAI1B;IAEL,OAAO,CAAC,cAAc,CAA2C;gBAEpC,IAAI,EAAE,IAAI;IAiBjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;YAWpB,iBAAiB;CAOlC"}
@@ -0,0 +1,77 @@
1
+ import { AbsentModalDialog, AcceptedModalDialog, DismissedModalDialog, ModalDialogHandler } from '@serenity-js/web';
2
+ /**
3
+ * WebdriverIO-specific implementation of [`ModalDialogHandler`](https://serenity-js.org/api/web/class/ModalDialogHandler/), applicable when WebdriverIO
4
+ * uses [Puppeteer](https://developer.chrome.com/docs/puppeteer/).
5
+ *
6
+ * Automatically handles any simple JavaScript modal dialog windows, such as
7
+ * those opened by [`window.alert()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/alert),
8
+ * [`window.confirm()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm),
9
+ * or [`window.prompt()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt).
10
+ *
11
+ * This helps to avoid Puppeteer hanging when there's an interaction pending
12
+ * and a dialog is already open, see https://github.com/puppeteer/puppeteer/issues/2481
13
+ */
14
+ export class WebdriverIOPuppeteerModalDialogHandler extends ModalDialogHandler {
15
+ page;
16
+ dialogHandlingInProgress = false;
17
+ defaultHandler = async (dialog) => {
18
+ await dialog.dismiss();
19
+ return new DismissedModalDialog(dialog.message());
20
+ };
21
+ currentHandler;
22
+ constructor(page) {
23
+ super();
24
+ this.page = page;
25
+ this.currentHandler = this.defaultHandler;
26
+ // remove the default WebdriverIO handler because it makes any other listeners hang
27
+ // https://github.com/webdriverio/webdriverio/blob/518c56a61353b2f65436b83c618117021da7e622/packages/devtools/src/devtoolsdriver.ts#L69
28
+ this.page.removeAllListeners('dialog');
29
+ // register Serenity/JS handler instead
30
+ this.page.on('dialog', async (dialog) => {
31
+ // Puppeteer doesn't seem to synchronise async handlers correctly,
32
+ // hence the handleModalDialog wrapper and the `dialogHandlingInProgress` lock.
33
+ await this.handleModalDialog(() => this.currentHandler(dialog));
34
+ });
35
+ }
36
+ async acceptNext() {
37
+ this.currentHandler = async (dialog) => {
38
+ await dialog.accept(dialog.defaultValue());
39
+ return new AcceptedModalDialog(dialog.message());
40
+ };
41
+ }
42
+ async acceptNextWithValue(text) {
43
+ this.currentHandler = async (dialog) => {
44
+ await dialog.accept(String(text));
45
+ return new AcceptedModalDialog(dialog.message());
46
+ };
47
+ }
48
+ async dismissNext() {
49
+ this.currentHandler = async (dialog) => {
50
+ await dialog.dismiss();
51
+ return new DismissedModalDialog(dialog.message());
52
+ };
53
+ }
54
+ async reset() {
55
+ this.modalDialog = new AbsentModalDialog();
56
+ this.currentHandler = this.defaultHandler;
57
+ }
58
+ async discard() {
59
+ this.page.off('dialog', this.currentHandler);
60
+ }
61
+ async last() {
62
+ return new Promise((resolve, reject) => {
63
+ const interval = setInterval(() => {
64
+ if (!this.dialogHandlingInProgress) {
65
+ clearInterval(interval);
66
+ resolve(this.modalDialog);
67
+ }
68
+ }, 25);
69
+ });
70
+ }
71
+ async handleModalDialog(handler) {
72
+ this.dialogHandlingInProgress = true;
73
+ this.modalDialog = await handler();
74
+ this.dialogHandlingInProgress = false;
75
+ }
76
+ }
77
+ //# sourceMappingURL=WebdriverIOPuppeteerModalDialogHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOPuppeteerModalDialogHandler.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors#table_of_errors
3
+ * https://github.com/SeleniumHQ/selenium/blob/e70e22390000a65a6b706fbb33bbff8913555670/javascript/node/selenium-webdriver/lib/error.js#L441
4
+ *
5
+ * @package
6
+ */
7
+ export declare enum WebdriverProtocolErrorCode {
8
+ WebDriverError = "unknown error",
9
+ DetachedShadowRootError = "detached shadow root",
10
+ ElementClickInterceptedError = "element click intercepted",
11
+ ElementNotInteractableError = "element not interactable",
12
+ ElementNotSelectableError = "element not selectable",
13
+ InsecureCertificateError = "insecure certificate",
14
+ InvalidArgumentError = "invalid argument",
15
+ InvalidCookieDomainError = "invalid cookie domain",
16
+ InvalidCoordinatesError = "invalid coordinates",
17
+ InvalidElementStateError = "invalid element state",
18
+ InvalidSelectorError = "invalid selector",
19
+ NoSuchSessionError = "invalid session id",
20
+ JavascriptError = "javascript error",
21
+ MoveTargetOutOfBoundsError = "move target out of bounds",
22
+ NoSuchAlertError = "no such alert",
23
+ NoSuchCookieError = "no such cookie",
24
+ NoSuchElementError = "no such element",
25
+ NoSuchFrameError = "no such frame",
26
+ NoSuchShadowRootError = "no such shadow root",
27
+ NoSuchWindowError = "no such window",
28
+ ScriptTimeoutError = "script timeout",
29
+ SessionNotCreatedError = "session not created",
30
+ StaleElementReferenceError = "stale element reference",
31
+ TimeoutError = "timeout",
32
+ UnableToSetCookieError = "unable to set cookie",
33
+ UnableToCaptureScreenError = "unable to capture screen",
34
+ UnexpectedAlertOpenError = "unexpected alert open",
35
+ UnknownCommandError = "unknown command",
36
+ UnknownMethodError = "unknown method",
37
+ UnsupportedOperationError = "unsupported operation"
38
+ }
39
+ //# sourceMappingURL=WebdriverProtocolErrorCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverProtocolErrorCode.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverProtocolErrorCode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,oBAAY,0BAA0B;IAClC,cAAc,kBAAkB;IAChC,uBAAuB,yBAAyB;IAChD,4BAA4B,8BAA8B;IAC1D,2BAA2B,6BAA6B;IACxD,yBAAyB,2BAA2B;IACpD,wBAAwB,yBAAyB;IACjD,oBAAoB,qBAAqB;IACzC,wBAAwB,0BAA0B;IAClD,uBAAuB,wBAAwB;IAC/C,wBAAwB,0BAA0B;IAClD,oBAAoB,qBAAqB;IACzC,kBAAkB,uBAAuB;IACzC,eAAe,qBAAqB;IACpC,0BAA0B,8BAA8B;IACxD,gBAAgB,kBAAkB;IAClC,iBAAiB,mBAAmB;IACpC,kBAAkB,oBAAoB;IACtC,gBAAgB,kBAAkB;IAClC,qBAAqB,wBAAwB;IAC7C,iBAAiB,mBAAmB;IACpC,kBAAkB,mBAAmB;IACrC,sBAAsB,wBAAwB;IAC9C,0BAA0B,4BAA4B;IACtD,YAAY,YAAY;IACxB,sBAAsB,yBAAyB;IAC/C,0BAA0B,6BAA6B;IACvD,wBAAwB,0BAA0B;IAClD,mBAAmB,oBAAoB;IACvC,kBAAkB,mBAAmB;IACrC,yBAAyB,0BAA0B;CACtD"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * https://developer.mozilla.org/en-US/docs/Web/WebDriver/Errors#table_of_errors
3
+ * https://github.com/SeleniumHQ/selenium/blob/e70e22390000a65a6b706fbb33bbff8913555670/javascript/node/selenium-webdriver/lib/error.js#L441
4
+ *
5
+ * @package
6
+ */
7
+ export var WebdriverProtocolErrorCode;
8
+ (function (WebdriverProtocolErrorCode) {
9
+ WebdriverProtocolErrorCode["WebDriverError"] = "unknown error";
10
+ WebdriverProtocolErrorCode["DetachedShadowRootError"] = "detached shadow root";
11
+ WebdriverProtocolErrorCode["ElementClickInterceptedError"] = "element click intercepted";
12
+ WebdriverProtocolErrorCode["ElementNotInteractableError"] = "element not interactable";
13
+ WebdriverProtocolErrorCode["ElementNotSelectableError"] = "element not selectable";
14
+ WebdriverProtocolErrorCode["InsecureCertificateError"] = "insecure certificate";
15
+ WebdriverProtocolErrorCode["InvalidArgumentError"] = "invalid argument";
16
+ WebdriverProtocolErrorCode["InvalidCookieDomainError"] = "invalid cookie domain";
17
+ WebdriverProtocolErrorCode["InvalidCoordinatesError"] = "invalid coordinates";
18
+ WebdriverProtocolErrorCode["InvalidElementStateError"] = "invalid element state";
19
+ WebdriverProtocolErrorCode["InvalidSelectorError"] = "invalid selector";
20
+ WebdriverProtocolErrorCode["NoSuchSessionError"] = "invalid session id";
21
+ WebdriverProtocolErrorCode["JavascriptError"] = "javascript error";
22
+ WebdriverProtocolErrorCode["MoveTargetOutOfBoundsError"] = "move target out of bounds";
23
+ WebdriverProtocolErrorCode["NoSuchAlertError"] = "no such alert";
24
+ WebdriverProtocolErrorCode["NoSuchCookieError"] = "no such cookie";
25
+ WebdriverProtocolErrorCode["NoSuchElementError"] = "no such element";
26
+ WebdriverProtocolErrorCode["NoSuchFrameError"] = "no such frame";
27
+ WebdriverProtocolErrorCode["NoSuchShadowRootError"] = "no such shadow root";
28
+ WebdriverProtocolErrorCode["NoSuchWindowError"] = "no such window";
29
+ WebdriverProtocolErrorCode["ScriptTimeoutError"] = "script timeout";
30
+ WebdriverProtocolErrorCode["SessionNotCreatedError"] = "session not created";
31
+ WebdriverProtocolErrorCode["StaleElementReferenceError"] = "stale element reference";
32
+ WebdriverProtocolErrorCode["TimeoutError"] = "timeout";
33
+ WebdriverProtocolErrorCode["UnableToSetCookieError"] = "unable to set cookie";
34
+ WebdriverProtocolErrorCode["UnableToCaptureScreenError"] = "unable to capture screen";
35
+ WebdriverProtocolErrorCode["UnexpectedAlertOpenError"] = "unexpected alert open";
36
+ WebdriverProtocolErrorCode["UnknownCommandError"] = "unknown command";
37
+ WebdriverProtocolErrorCode["UnknownMethodError"] = "unknown method";
38
+ WebdriverProtocolErrorCode["UnsupportedOperationError"] = "unsupported operation";
39
+ })(WebdriverProtocolErrorCode || (WebdriverProtocolErrorCode = {}));
40
+ //# sourceMappingURL=WebdriverProtocolErrorCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverProtocolErrorCode.js","sourceRoot":"","sources":["../../../src/screenplay/models/WebdriverProtocolErrorCode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAN,IAAY,0BA+BX;AA/BD,WAAY,0BAA0B;IAClC,8DAAgC,CAAA;IAChC,8EAAgD,CAAA;IAChD,wFAA0D,CAAA;IAC1D,sFAAwD,CAAA;IACxD,kFAAoD,CAAA;IACpD,+EAAiD,CAAA;IACjD,uEAAyC,CAAA;IACzC,gFAAkD,CAAA;IAClD,6EAA+C,CAAA;IAC/C,gFAAkD,CAAA;IAClD,uEAAyC,CAAA;IACzC,uEAAyC,CAAA;IACzC,kEAAoC,CAAA;IACpC,sFAAwD,CAAA;IACxD,gEAAkC,CAAA;IAClC,kEAAoC,CAAA;IACpC,oEAAsC,CAAA;IACtC,gEAAkC,CAAA;IAClC,2EAA6C,CAAA;IAC7C,kEAAoC,CAAA;IACpC,mEAAqC,CAAA;IACrC,4EAA8C,CAAA;IAC9C,oFAAsD,CAAA;IACtD,sDAAwB,CAAA;IACxB,6EAA+C,CAAA;IAC/C,qFAAuD,CAAA;IACvD,gFAAkD,CAAA;IAClD,qEAAuC,CAAA;IACvC,mEAAqC,CAAA;IACrC,iFAAmD,CAAA;AACvD,CAAC,EA/BW,0BAA0B,KAA1B,0BAA0B,QA+BrC"}
@@ -0,0 +1,5 @@
1
+ export * from './WebdriverIOBrowsingSession.js';
2
+ export * from './WebdriverIOCookie.js';
3
+ export * from './WebdriverIOPage.js';
4
+ export * from './WebdriverIOPageElement.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './WebdriverIOBrowsingSession.js';
2
+ export * from './WebdriverIOCookie.js';
3
+ export * from './WebdriverIOPage.js';
4
+ export * from './WebdriverIOPageElement.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import 'webdriverio';
2
+ import type { PageElement, RootLocator, Selector } from '@serenity-js/web';
3
+ import { Locator } from '@serenity-js/web';
4
+ import type { WebdriverIOErrorHandler } from '../WebdriverIOErrorHandler.js';
5
+ /**
6
+ * WebdriverIO-specific implementation of [`Locator`](https://serenity-js.org/api/web/class/Locator/).
7
+ *
8
+ * @group Models
9
+ */
10
+ export declare class WebdriverIOLocator extends Locator<WebdriverIO.Element, string> {
11
+ private readonly errorHandler;
12
+ constructor(parent: RootLocator<WebdriverIO.Element>, selector: Selector, errorHandler: WebdriverIOErrorHandler);
13
+ protected nativeSelector(): string;
14
+ isPresent(): Promise<boolean>;
15
+ nativeElement(): Promise<WebdriverIO.Element>;
16
+ protected resolveNativeElement(): Promise<WebdriverIO.Element>;
17
+ allNativeElements(): Promise<Array<WebdriverIO.Element>>;
18
+ of(parent: WebdriverIOLocator): Locator<WebdriverIO.Element, string>;
19
+ closestTo(child: WebdriverIOLocator): Locator<WebdriverIO.Element, string>;
20
+ locate(child: WebdriverIOLocator): Locator<WebdriverIO.Element, string>;
21
+ element(): PageElement<WebdriverIO.Element>;
22
+ allElements(): Promise<Array<PageElement<WebdriverIO.Element>>>;
23
+ }
24
+ /**
25
+ * @internal
26
+ */
27
+ export declare class WebdriverIOExistingElementLocator extends WebdriverIOLocator {
28
+ private readonly existingNativeElement;
29
+ constructor(parentRoot: RootLocator<WebdriverIO.Element>, selector: Selector, errorHandler: WebdriverIOErrorHandler, existingNativeElement: WebdriverIO.Element);
30
+ nativeElement(): Promise<WebdriverIO.Element>;
31
+ allNativeElements(): Promise<Array<WebdriverIO.Element>>;
32
+ }
33
+ //# sourceMappingURL=WebdriverIOLocator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebdriverIOLocator.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/locators/WebdriverIOLocator.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAmE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE5G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAI7E;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;IAKpE,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAF7B,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,EACxC,QAAQ,EAAE,QAAQ,EACD,YAAY,EAAE,uBAAuB;IAM1D,SAAS,CAAC,cAAc,IAAI,MAAM;IA4B5B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAU7B,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;cASnC,oBAAoB,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;IAgB9D,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAK9D,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;IAIpE,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;IAI1E,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;IAIvE,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC;IAIrC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;CAcxE;AAED;;GAEG;AACH,qBAAa,iCAAkC,SAAQ,kBAAkB;IAKjE,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAHtC,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,EAC5C,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,uBAAuB,EACpB,qBAAqB,EAAE,WAAW,CAAC,OAAO;IAKzD,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;IAI7C,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;CAGjE"}