@serenity-js/webdriverio 3.1.6 → 3.2.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 (270) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +91 -41
  3. package/esm/adapter/TestRunnerLoader.d.ts +16 -0
  4. package/esm/adapter/TestRunnerLoader.d.ts.map +1 -0
  5. package/esm/adapter/TestRunnerLoader.js +58 -0
  6. package/esm/adapter/TestRunnerLoader.js.map +1 -0
  7. package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts +24 -0
  8. package/esm/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -0
  9. package/esm/adapter/WebdriverIOFrameworkAdapter.js +77 -0
  10. package/esm/adapter/WebdriverIOFrameworkAdapter.js.map +1 -0
  11. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +19 -0
  12. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -0
  13. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js +15 -0
  14. package/esm/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -0
  15. package/esm/adapter/WebdriverIONotifier.d.ts +72 -0
  16. package/esm/adapter/WebdriverIONotifier.d.ts.map +1 -0
  17. package/esm/adapter/WebdriverIONotifier.js +385 -0
  18. package/esm/adapter/WebdriverIONotifier.js.map +1 -0
  19. package/esm/adapter/index.d.ts +2 -0
  20. package/esm/adapter/index.d.ts.map +1 -0
  21. package/esm/adapter/index.js +2 -0
  22. package/esm/adapter/index.js.map +1 -0
  23. package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts +18 -0
  24. package/esm/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -0
  25. package/esm/adapter/reporter/BrowserCapabilitiesReporter.js +41 -0
  26. package/esm/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -0
  27. package/esm/adapter/reporter/InitialisesReporters.d.ts +8 -0
  28. package/esm/adapter/reporter/InitialisesReporters.d.ts.map +1 -0
  29. package/esm/adapter/reporter/InitialisesReporters.js +2 -0
  30. package/esm/adapter/reporter/InitialisesReporters.js.map +1 -0
  31. package/esm/adapter/reporter/OutputStreamBuffer.d.ts +13 -0
  32. package/esm/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -0
  33. package/esm/adapter/reporter/OutputStreamBuffer.js +24 -0
  34. package/esm/adapter/reporter/OutputStreamBuffer.js.map +1 -0
  35. package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts +16 -0
  36. package/esm/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -0
  37. package/esm/adapter/reporter/OutputStreamBufferPrinter.js +21 -0
  38. package/esm/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -0
  39. package/esm/adapter/reporter/ProvidesWriteStream.d.ts +8 -0
  40. package/esm/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -0
  41. package/esm/adapter/reporter/ProvidesWriteStream.js +2 -0
  42. package/esm/adapter/reporter/ProvidesWriteStream.js.map +1 -0
  43. package/esm/adapter/reporter/TagPrinter.d.ts +17 -0
  44. package/esm/adapter/reporter/TagPrinter.d.ts.map +1 -0
  45. package/esm/adapter/reporter/TagPrinter.js +52 -0
  46. package/esm/adapter/reporter/TagPrinter.js.map +1 -0
  47. package/esm/adapter/reporter/index.d.ts +6 -0
  48. package/esm/adapter/reporter/index.d.ts.map +1 -0
  49. package/esm/adapter/reporter/index.js +6 -0
  50. package/esm/adapter/reporter/index.js.map +1 -0
  51. package/esm/api.d.ts +3 -0
  52. package/esm/api.d.ts.map +1 -0
  53. package/esm/api.js +2 -0
  54. package/esm/api.js.map +1 -0
  55. package/esm/config/WebdriverIOConfig.d.ts.map +1 -0
  56. package/esm/config/WebdriverIOConfig.js +2 -0
  57. package/esm/config/WebdriverIOConfig.js.map +1 -0
  58. package/esm/config/index.d.ts +2 -0
  59. package/esm/config/index.d.ts.map +1 -0
  60. package/esm/config/index.js +2 -0
  61. package/esm/config/index.js.map +1 -0
  62. package/esm/index.d.ts +16 -0
  63. package/esm/index.d.ts.map +1 -0
  64. package/esm/index.js +14 -0
  65. package/esm/index.js.map +1 -0
  66. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +42 -0
  67. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -0
  68. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +48 -0
  69. package/esm/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -0
  70. package/esm/screenplay/abilities/index.d.ts +2 -0
  71. package/esm/screenplay/abilities/index.d.ts.map +1 -0
  72. package/esm/screenplay/abilities/index.js +2 -0
  73. package/esm/screenplay/abilities/index.js.map +1 -0
  74. package/esm/screenplay/index.d.ts +3 -0
  75. package/esm/screenplay/index.d.ts.map +1 -0
  76. package/esm/screenplay/index.js +3 -0
  77. package/esm/screenplay/index.js.map +1 -0
  78. package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts +24 -0
  79. package/esm/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -0
  80. package/esm/screenplay/models/WebdriverIOBrowsingSession.js +121 -0
  81. package/esm/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -0
  82. package/esm/screenplay/models/WebdriverIOCookie.d.ts +14 -0
  83. package/esm/screenplay/models/WebdriverIOCookie.d.ts.map +1 -0
  84. package/esm/screenplay/models/WebdriverIOCookie.js +40 -0
  85. package/esm/screenplay/models/WebdriverIOCookie.js.map +1 -0
  86. package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts +9 -0
  87. package/esm/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -0
  88. package/esm/screenplay/models/WebdriverIOErrorHandler.js +19 -0
  89. package/esm/screenplay/models/WebdriverIOErrorHandler.js.map +1 -0
  90. package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts +29 -0
  91. package/esm/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -0
  92. package/esm/screenplay/models/WebdriverIOModalDialogHandler.js +73 -0
  93. package/esm/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -0
  94. package/esm/screenplay/models/WebdriverIOPage.d.ts +48 -0
  95. package/esm/screenplay/models/WebdriverIOPage.d.ts.map +1 -0
  96. package/esm/screenplay/models/WebdriverIOPage.js +203 -0
  97. package/esm/screenplay/models/WebdriverIOPage.js.map +1 -0
  98. package/esm/screenplay/models/WebdriverIOPageElement.d.ts +31 -0
  99. package/esm/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -0
  100. package/esm/screenplay/models/WebdriverIOPageElement.js +205 -0
  101. package/esm/screenplay/models/WebdriverIOPageElement.js.map +1 -0
  102. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +32 -0
  103. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -0
  104. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js +78 -0
  105. package/esm/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -0
  106. package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts +39 -0
  107. package/esm/screenplay/models/WebdriverProtocolErrorCode.d.ts.map +1 -0
  108. package/esm/screenplay/models/WebdriverProtocolErrorCode.js +40 -0
  109. package/esm/screenplay/models/WebdriverProtocolErrorCode.js.map +1 -0
  110. package/esm/screenplay/models/index.d.ts +5 -0
  111. package/esm/screenplay/models/index.d.ts.map +1 -0
  112. package/esm/screenplay/models/index.js +5 -0
  113. package/esm/screenplay/models/index.js.map +1 -0
  114. package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts +22 -0
  115. package/esm/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -0
  116. package/esm/screenplay/models/locators/WebdriverIOLocator.js +97 -0
  117. package/esm/screenplay/models/locators/WebdriverIOLocator.js.map +1 -0
  118. package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts +17 -0
  119. package/esm/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -0
  120. package/esm/screenplay/models/locators/WebdriverIORootLocator.js +28 -0
  121. package/esm/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -0
  122. package/esm/screenplay/models/locators/index.d.ts +3 -0
  123. package/esm/screenplay/models/locators/index.d.ts.map +1 -0
  124. package/esm/screenplay/models/locators/index.js +3 -0
  125. package/esm/screenplay/models/locators/index.js.map +1 -0
  126. package/lib/adapter/TestRunnerLoader.d.ts +3 -3
  127. package/lib/adapter/TestRunnerLoader.d.ts.map +1 -1
  128. package/lib/adapter/TestRunnerLoader.js +8 -8
  129. package/lib/adapter/TestRunnerLoader.js.map +1 -1
  130. package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts +5 -4
  131. package/lib/adapter/WebdriverIOFrameworkAdapter.d.ts.map +1 -1
  132. package/lib/adapter/WebdriverIOFrameworkAdapter.js +51 -21
  133. package/lib/adapter/WebdriverIOFrameworkAdapter.js.map +1 -1
  134. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts +5 -5
  135. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.d.ts.map +1 -1
  136. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js +2 -2
  137. package/lib/adapter/WebdriverIOFrameworkAdapterFactory.js.map +1 -1
  138. package/lib/adapter/WebdriverIONotifier.d.ts +6 -6
  139. package/lib/adapter/WebdriverIONotifier.d.ts.map +1 -1
  140. package/lib/adapter/WebdriverIONotifier.js +48 -24
  141. package/lib/adapter/WebdriverIONotifier.js.map +1 -1
  142. package/lib/adapter/index.d.ts +1 -2
  143. package/lib/adapter/index.d.ts.map +1 -1
  144. package/lib/adapter/index.js +1 -2
  145. package/lib/adapter/index.js.map +1 -1
  146. package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts +1 -1
  147. package/lib/adapter/reporter/BrowserCapabilitiesReporter.d.ts.map +1 -1
  148. package/lib/adapter/reporter/BrowserCapabilitiesReporter.js +4 -4
  149. package/lib/adapter/reporter/BrowserCapabilitiesReporter.js.map +1 -1
  150. package/lib/adapter/reporter/InitialisesReporters.d.ts +2 -2
  151. package/lib/adapter/reporter/InitialisesReporters.d.ts.map +1 -1
  152. package/lib/adapter/reporter/OutputStreamBuffer.d.ts +1 -1
  153. package/lib/adapter/reporter/OutputStreamBuffer.d.ts.map +1 -1
  154. package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts +3 -3
  155. package/lib/adapter/reporter/OutputStreamBufferPrinter.d.ts.map +1 -1
  156. package/lib/adapter/reporter/OutputStreamBufferPrinter.js +2 -2
  157. package/lib/adapter/reporter/OutputStreamBufferPrinter.js.map +1 -1
  158. package/lib/adapter/reporter/ProvidesWriteStream.d.ts +1 -1
  159. package/lib/adapter/reporter/ProvidesWriteStream.d.ts.map +1 -1
  160. package/lib/adapter/reporter/TagPrinter.d.ts +2 -2
  161. package/lib/adapter/reporter/TagPrinter.d.ts.map +1 -1
  162. package/lib/adapter/reporter/TagPrinter.js +7 -5
  163. package/lib/adapter/reporter/TagPrinter.js.map +1 -1
  164. package/lib/adapter/reporter/index.d.ts +5 -5
  165. package/lib/adapter/reporter/index.d.ts.map +1 -1
  166. package/lib/adapter/reporter/index.js +5 -5
  167. package/lib/adapter/reporter/index.js.map +1 -1
  168. package/lib/api.d.ts +3 -0
  169. package/lib/api.d.ts.map +1 -0
  170. package/lib/api.js +18 -0
  171. package/lib/api.js.map +1 -0
  172. package/lib/config/WebdriverIOConfig.d.ts +128 -0
  173. package/lib/config/WebdriverIOConfig.d.ts.map +1 -0
  174. package/lib/config/WebdriverIOConfig.js.map +1 -0
  175. package/lib/config/index.d.ts +2 -0
  176. package/lib/config/index.d.ts.map +1 -0
  177. package/lib/config/index.js +18 -0
  178. package/lib/config/index.js.map +1 -0
  179. package/lib/index.d.ts +15 -5
  180. package/lib/index.d.ts.map +1 -1
  181. package/lib/index.js +12 -5
  182. package/lib/index.js.map +1 -1
  183. package/lib/package.json +1 -0
  184. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts +5 -5
  185. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.d.ts.map +1 -1
  186. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js +2 -2
  187. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -1
  188. package/lib/screenplay/abilities/index.d.ts +1 -1
  189. package/lib/screenplay/abilities/index.d.ts.map +1 -1
  190. package/lib/screenplay/abilities/index.js +1 -1
  191. package/lib/screenplay/abilities/index.js.map +1 -1
  192. package/lib/screenplay/index.d.ts +2 -2
  193. package/lib/screenplay/index.d.ts.map +1 -1
  194. package/lib/screenplay/index.js +2 -2
  195. package/lib/screenplay/index.js.map +1 -1
  196. package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts +4 -4
  197. package/lib/screenplay/models/WebdriverIOBrowsingSession.d.ts.map +1 -1
  198. package/lib/screenplay/models/WebdriverIOBrowsingSession.js +12 -12
  199. package/lib/screenplay/models/WebdriverIOBrowsingSession.js.map +1 -1
  200. package/lib/screenplay/models/WebdriverIOCookie.d.ts +2 -2
  201. package/lib/screenplay/models/WebdriverIOCookie.d.ts.map +1 -1
  202. package/lib/screenplay/models/WebdriverIOCookie.js.map +1 -1
  203. package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts +1 -1
  204. package/lib/screenplay/models/WebdriverIOErrorHandler.d.ts.map +1 -1
  205. package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts +3 -3
  206. package/lib/screenplay/models/WebdriverIOModalDialogHandler.d.ts.map +1 -1
  207. package/lib/screenplay/models/WebdriverIOModalDialogHandler.js +3 -3
  208. package/lib/screenplay/models/WebdriverIOModalDialogHandler.js.map +1 -1
  209. package/lib/screenplay/models/WebdriverIOPage.d.ts +9 -9
  210. package/lib/screenplay/models/WebdriverIOPage.d.ts.map +1 -1
  211. package/lib/screenplay/models/WebdriverIOPage.js +9 -12
  212. package/lib/screenplay/models/WebdriverIOPage.js.map +1 -1
  213. package/lib/screenplay/models/WebdriverIOPageElement.d.ts +2 -2
  214. package/lib/screenplay/models/WebdriverIOPageElement.d.ts.map +1 -1
  215. package/lib/screenplay/models/WebdriverIOPageElement.js +16 -15
  216. package/lib/screenplay/models/WebdriverIOPageElement.js.map +1 -1
  217. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts +1 -1
  218. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.d.ts.map +1 -1
  219. package/lib/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.js.map +1 -1
  220. package/lib/screenplay/models/index.d.ts +4 -4
  221. package/lib/screenplay/models/index.d.ts.map +1 -1
  222. package/lib/screenplay/models/index.js +4 -4
  223. package/lib/screenplay/models/index.js.map +1 -1
  224. package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts +10 -10
  225. package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts.map +1 -1
  226. package/lib/screenplay/models/locators/WebdriverIOLocator.js +3 -3
  227. package/lib/screenplay/models/locators/WebdriverIOLocator.js.map +1 -1
  228. package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts +5 -5
  229. package/lib/screenplay/models/locators/WebdriverIORootLocator.d.ts.map +1 -1
  230. package/lib/screenplay/models/locators/WebdriverIORootLocator.js.map +1 -1
  231. package/lib/screenplay/models/locators/index.d.ts +2 -2
  232. package/lib/screenplay/models/locators/index.d.ts.map +1 -1
  233. package/lib/screenplay/models/locators/index.js +2 -2
  234. package/lib/screenplay/models/locators/index.js.map +1 -1
  235. package/package.json +39 -42
  236. package/src/adapter/TestRunnerLoader.ts +15 -10
  237. package/src/adapter/WebdriverIOFrameworkAdapter.ts +39 -26
  238. package/src/adapter/WebdriverIOFrameworkAdapterFactory.ts +4 -4
  239. package/src/adapter/WebdriverIONotifier.ts +37 -14
  240. package/src/adapter/index.ts +1 -2
  241. package/src/adapter/reporter/BrowserCapabilitiesReporter.ts +4 -4
  242. package/src/adapter/reporter/InitialisesReporters.ts +2 -2
  243. package/src/adapter/reporter/OutputStreamBuffer.ts +1 -1
  244. package/src/adapter/reporter/OutputStreamBufferPrinter.ts +3 -3
  245. package/src/adapter/reporter/ProvidesWriteStream.ts +1 -1
  246. package/src/adapter/reporter/TagPrinter.ts +6 -4
  247. package/src/adapter/reporter/index.ts +5 -5
  248. package/src/api.ts +2 -0
  249. package/src/config/index.ts +1 -0
  250. package/src/index.ts +27 -10
  251. package/src/screenplay/abilities/BrowseTheWebWithWebdriverIO.ts +5 -5
  252. package/src/screenplay/abilities/index.ts +1 -1
  253. package/src/screenplay/index.ts +2 -2
  254. package/src/screenplay/models/WebdriverIOBrowsingSession.ts +8 -8
  255. package/src/screenplay/models/WebdriverIOCookie.ts +2 -2
  256. package/src/screenplay/models/WebdriverIOErrorHandler.ts +1 -1
  257. package/src/screenplay/models/WebdriverIOModalDialogHandler.ts +4 -4
  258. package/src/screenplay/models/WebdriverIOPage.ts +11 -15
  259. package/src/screenplay/models/WebdriverIOPageElement.ts +21 -21
  260. package/src/screenplay/models/WebdriverIOPuppeteerModalDialogHandler.ts +8 -3
  261. package/src/screenplay/models/index.ts +4 -4
  262. package/src/screenplay/models/locators/WebdriverIOLocator.ts +17 -17
  263. package/src/screenplay/models/locators/WebdriverIORootLocator.ts +5 -5
  264. package/src/screenplay/models/locators/index.ts +2 -2
  265. package/lib/adapter/WebdriverIOConfig.d.ts.map +0 -1
  266. package/lib/adapter/WebdriverIOConfig.js.map +0 -1
  267. package/tsconfig.build.json +0 -17
  268. /package/{lib/adapter → esm/config}/WebdriverIOConfig.d.ts +0 -0
  269. /package/lib/{adapter → config}/WebdriverIOConfig.js +0 -0
  270. /package/src/{adapter → config}/WebdriverIOConfig.ts +0 -0
@@ -1,2 +1,2 @@
1
- export * from './abilities';
2
- export * from './models';
1
+ export * from './abilities/index.js';
2
+ export * from './models/index.js';
@@ -1,13 +1,13 @@
1
1
  import { LogicError } from '@serenity-js/core';
2
- import { CorrelationId } from '@serenity-js/core/lib/model';
2
+ import { CorrelationId } from '@serenity-js/core/lib/model/index.js';
3
3
  import { BrowsingSession, ModalDialogHandler } from '@serenity-js/web';
4
- import type { Page } from 'puppeteer-core/lib/cjs/puppeteer/api/Page';
5
- import * as wdio from 'webdriverio';
4
+ import type { Page } from 'puppeteer-core';
5
+ import type { Browser } from 'webdriverio';
6
6
 
7
- import { WebdriverIOPage } from '../models';
8
- import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler';
9
- import { WebdriverIOModalDialogHandler } from './WebdriverIOModalDialogHandler';
10
- import { WebdriverIOPuppeteerModalDialogHandler } from './WebdriverIOPuppeteerModalDialogHandler';
7
+ import { WebdriverIOPage } from '../models/index.js';
8
+ import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler.js';
9
+ import { WebdriverIOModalDialogHandler } from './WebdriverIOModalDialogHandler.js';
10
+ import { WebdriverIOPuppeteerModalDialogHandler } from './WebdriverIOPuppeteerModalDialogHandler.js';
11
11
 
12
12
  /**
13
13
  * WebdriverIO-specific implementation of {@apilink BrowsingSession}.
@@ -16,7 +16,7 @@ import { WebdriverIOPuppeteerModalDialogHandler } from './WebdriverIOPuppeteerMo
16
16
  */
17
17
  export class WebdriverIOBrowsingSession extends BrowsingSession<WebdriverIOPage> {
18
18
 
19
- constructor(protected readonly browser: wdio.Browser<'async'>) {
19
+ constructor(protected readonly browser: Browser) {
20
20
  super();
21
21
 
22
22
  if (! browser.$ || ! browser.$$) {
@@ -1,7 +1,7 @@
1
1
  import { Timestamp } from '@serenity-js/core';
2
2
  import { Cookie, CookieData, CookieMissingError } from '@serenity-js/web';
3
3
  import { ensure, isDefined } from 'tiny-types';
4
- import * as wdio from 'webdriverio';
4
+ import type { Browser } from 'webdriverio';
5
5
 
6
6
  /**
7
7
  * WebdriverIO-specific implementation of {@apilink Cookie}.
@@ -11,7 +11,7 @@ import * as wdio from 'webdriverio';
11
11
  export class WebdriverIOCookie extends Cookie {
12
12
 
13
13
  constructor(
14
- private readonly browser: wdio.Browser<'async'>,
14
+ private readonly browser: Browser,
15
15
  cookieName: string,
16
16
  ) {
17
17
  super(cookieName);
@@ -1,4 +1,4 @@
1
- import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode';
1
+ import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode.js';
2
2
 
3
3
  export class WebdriverIOErrorHandler {
4
4
 
@@ -1,8 +1,8 @@
1
1
  import { AbsentModalDialog, AcceptedModalDialog, DismissedModalDialog, ModalDialog, ModalDialogHandler } from '@serenity-js/web';
2
- import * as wdio from 'webdriverio';
2
+ import type { Browser } from 'webdriverio';
3
3
 
4
- import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler';
5
- import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode';
4
+ import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler.js';
5
+ import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode.js';
6
6
 
7
7
  /**
8
8
  * WebdriverIO-specific implementation of {@apilink ModalDialogHandler},
@@ -27,7 +27,7 @@ export class WebdriverIOModalDialogHandler extends ModalDialogHandler {
27
27
  private currentHandler: () => Promise<void>;
28
28
 
29
29
  constructor(
30
- private readonly browser: wdio.Browser<'async'>,
30
+ private readonly browser: Browser,
31
31
  private readonly errorHandler: WebdriverIOErrorHandler,
32
32
  ) {
33
33
  super();
@@ -1,27 +1,27 @@
1
1
  import { LogicError } from '@serenity-js/core';
2
- import { CorrelationId } from '@serenity-js/core/lib/model';
2
+ import { CorrelationId } from '@serenity-js/core/lib/model/index.js';
3
3
  import { BrowserWindowClosedError, Cookie, CookieData, Key, ModalDialogHandler, Page, PageElement, PageElements, Selector } from '@serenity-js/web';
4
4
  import { URL } from 'url';
5
- import * as wdio from 'webdriverio';
5
+ import type { Browser, Element } from 'webdriverio';
6
6
 
7
- import { WebdriverIOLocator, WebdriverIORootLocator } from './locators';
8
- import { WebdriverIOBrowsingSession } from './WebdriverIOBrowsingSession';
9
- import { WebdriverIOCookie } from './WebdriverIOCookie';
10
- import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler';
11
- import { WebdriverIOPageElement } from './WebdriverIOPageElement';
7
+ import { WebdriverIOLocator, WebdriverIORootLocator } from './locators/index.js';
8
+ import { WebdriverIOBrowsingSession } from './WebdriverIOBrowsingSession.js';
9
+ import { WebdriverIOCookie } from './WebdriverIOCookie.js';
10
+ import { WebdriverIOErrorHandler } from './WebdriverIOErrorHandler.js';
11
+ import { WebdriverIOPageElement } from './WebdriverIOPageElement.js';
12
12
 
13
13
  /**
14
14
  * WebdriverIO-specific implementation of {@apilink Page}.
15
15
  *
16
16
  * @group Models
17
17
  */
18
- export class WebdriverIOPage extends Page<wdio.Element<'async'>> {
18
+ export class WebdriverIOPage extends Page<Element> {
19
19
 
20
20
  private lastScriptExecutionSummary: LastScriptExecutionSummary;
21
21
 
22
22
  constructor(
23
23
  session: WebdriverIOBrowsingSession,
24
- private readonly browser: wdio.Browser<'async'>,
24
+ private readonly browser: Browser,
25
25
  modalDialogHandler: ModalDialogHandler,
26
26
  private readonly errorHandler: WebdriverIOErrorHandler,
27
27
  pageId: CorrelationId,
@@ -34,13 +34,13 @@ export class WebdriverIOPage extends Page<wdio.Element<'async'>> {
34
34
  );
35
35
  }
36
36
 
37
- locate(selector: Selector): PageElement<wdio.Element<'async'>> {
37
+ locate(selector: Selector): PageElement<Element> {
38
38
  return new WebdriverIOPageElement(
39
39
  new WebdriverIOLocator(this.rootLocator, selector, this.errorHandler)
40
40
  )
41
41
  }
42
42
 
43
- locateAll(selector: Selector): PageElements<wdio.Element<'async'>> {
43
+ locateAll(selector: Selector): PageElements<Element> {
44
44
  return new PageElements(
45
45
  new WebdriverIOLocator(this.rootLocator, selector, this.errorHandler)
46
46
  );
@@ -68,10 +68,6 @@ export class WebdriverIOPage extends Page<wdio.Element<'async'>> {
68
68
  return key;
69
69
  }
70
70
 
71
- if (this.browser.isDevTools) {
72
- return key.devtoolsName;
73
- }
74
-
75
71
  return key.utf16codePoint;
76
72
  });
77
73
 
@@ -1,17 +1,17 @@
1
1
  import { LogicError } from '@serenity-js/core';
2
2
  import { Key, PageElement, SelectOption, SwitchableOrigin } from '@serenity-js/web';
3
- import * as scripts from '@serenity-js/web/lib/scripts';
4
- import * as wdio from 'webdriverio';
3
+ import * as scripts from '@serenity-js/web/lib/scripts/index.js';
4
+ import type { Browser, Element } from 'webdriverio';
5
5
 
6
- import { WebdriverIOLocator } from './locators';
7
- import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode';
6
+ import { WebdriverIOLocator } from './locators/index.js';
7
+ import { WebdriverProtocolErrorCode } from './WebdriverProtocolErrorCode.js';
8
8
 
9
9
  /**
10
10
  * WebdriverIO-specific implementation of {@apilink PageElement}.
11
11
  *
12
12
  * @group Models
13
13
  */
14
- export class WebdriverIOPageElement extends PageElement<wdio.Element<'async'>> {
14
+ export class WebdriverIOPageElement extends PageElement<Element> {
15
15
  of(parent: WebdriverIOPageElement): WebdriverIOPageElement {
16
16
  return new WebdriverIOPageElement(this.locator.of(parent.locator))
17
17
  }
@@ -23,20 +23,17 @@ export class WebdriverIOPageElement extends PageElement<wdio.Element<'async'>> {
23
23
  }
24
24
 
25
25
  // eslint-disable-next-line unicorn/consistent-function-scoping
26
- async function removeCharactersFrom(browser: wdio.Browser<'async'>, inputElement: wdio.Element<'async'>, numberOfCharacters: number): Promise<void> {
27
- const homeKey = browser.isDevTools ? Key.Home.devtoolsName : Key.Home.utf16codePoint;
28
- const deleteKey = browser.isDevTools ? Key.Delete.devtoolsName : Key.Delete.utf16codePoint;
29
-
26
+ async function removeCharactersFrom(browser: Browser, inputElement: Element, numberOfCharacters: number): Promise<void> {
30
27
  await browser.execute(
31
- /* istanbul ignore next */
28
+ /* c8 ignore next */
32
29
  function focusOn(element: any) {
33
30
  element.focus();
34
31
  },
35
32
  element
36
33
  );
37
- await inputElement.keys([
38
- homeKey,
39
- ...times(numberOfCharacters, deleteKey),
34
+ await browser.keys([
35
+ Key.Home.utf16codePoint,
36
+ ...times(numberOfCharacters, Key.Delete.utf16codePoint),
40
37
  ]);
41
38
  }
42
39
 
@@ -69,8 +66,10 @@ export class WebdriverIOPageElement extends PageElement<wdio.Element<'async'>> {
69
66
  }
70
67
 
71
68
  async enterValue(value: string | number | Array<string | number>): Promise<void> {
72
- const element = await this.nativeElement();
73
- await element.addValue(value);
69
+ const text = Array.isArray(value) ? value.join('') : value;
70
+ const element = await this.nativeElement();
71
+
72
+ await element.addValue(text);
74
73
  }
75
74
 
76
75
  async scrollIntoView(): Promise<void> {
@@ -106,7 +105,7 @@ export class WebdriverIOPageElement extends PageElement<wdio.Element<'async'>> {
106
105
  const browser = await this.browserFor(element);
107
106
 
108
107
  const options = await browser.execute(
109
- /* istanbul ignore next */
108
+ /* c8 ignore start */
110
109
  (select: HTMLSelectElement) => {
111
110
  const options = [];
112
111
  select.querySelectorAll('option').forEach((option: HTMLOptionElement) => {
@@ -121,6 +120,7 @@ export class WebdriverIOPageElement extends PageElement<wdio.Element<'async'>> {
121
120
  return options;
122
121
  },
123
122
  element as unknown
123
+ /* c8 ignore stop */
124
124
  );
125
125
 
126
126
  return options.map(option =>
@@ -145,7 +145,7 @@ export class WebdriverIOPageElement extends PageElement<wdio.Element<'async'>> {
145
145
 
146
146
  async switchTo(): Promise<SwitchableOrigin> {
147
147
  try {
148
- const element: wdio.Element<'async'> = await this.locator.nativeElement()
148
+ const element: Element = await this.locator.nativeElement()
149
149
 
150
150
  if (element.error) {
151
151
  throw element.error;
@@ -169,7 +169,7 @@ export class WebdriverIOPageElement extends PageElement<wdio.Element<'async'>> {
169
169
  else {
170
170
  // focus on element
171
171
  const previouslyFocusedElement = await browser.execute(
172
- /* istanbul ignore next */
172
+ /* c8 ignore next */
173
173
  function focusOn(element: any) {
174
174
  const currentlyFocusedElement = document.activeElement;
175
175
  element.focus();
@@ -181,7 +181,7 @@ export class WebdriverIOPageElement extends PageElement<wdio.Element<'async'>> {
181
181
  return {
182
182
  switchBack: async (): Promise<void> => {
183
183
  await browser.execute(
184
- /* istanbul ignore next */
184
+ /* c8 ignore next */
185
185
  function focusOn(element: any) {
186
186
  element.focus();
187
187
  },
@@ -253,8 +253,8 @@ export class WebdriverIOPageElement extends PageElement<wdio.Element<'async'>> {
253
253
 
254
254
  // based on https://github.com/webdriverio/webdriverio/blob/dec6da76b0e218af935dbf39735ae3491d5edd8c/packages/webdriverio/src/utils/index.ts#L98
255
255
 
256
- private async browserFor(nativeElement: wdio.Element<'async'> | wdio.Browser<'async'>): Promise<wdio.Browser<'async'>> {
257
- const element = nativeElement as wdio.Element<'async'>;
256
+ private async browserFor(nativeElement: Element | Browser): Promise<Browser> {
257
+ const element = nativeElement as Element;
258
258
  return element.parent
259
259
  ? this.browserFor(element.parent)
260
260
  : nativeElement
@@ -1,6 +1,11 @@
1
- import { AbsentModalDialog, AcceptedModalDialog, DismissedModalDialog, ModalDialog, ModalDialogHandler } from '@serenity-js/web';
2
- import type { Page } from 'puppeteer-core/lib/cjs/puppeteer/api/Page';
3
- import type { Dialog } from 'puppeteer-core/lib/cjs/puppeteer/common/Dialog';
1
+ import {
2
+ AbsentModalDialog,
3
+ AcceptedModalDialog,
4
+ DismissedModalDialog,
5
+ ModalDialog,
6
+ ModalDialogHandler
7
+ } from '@serenity-js/web';
8
+ import type { Dialog, Page } from 'puppeteer-core';
4
9
 
5
10
  /**
6
11
  * WebdriverIO-specific implementation of {@apilink {ModalDialogHandler}, applicable when WebdriverIO
@@ -1,4 +1,4 @@
1
- export * from './WebdriverIOBrowsingSession';
2
- export * from './WebdriverIOCookie';
3
- export * from './WebdriverIOPage';
4
- export * from './WebdriverIOPageElement';
1
+ export * from './WebdriverIOBrowsingSession.js';
2
+ export * from './WebdriverIOCookie.js';
3
+ export * from './WebdriverIOPage.js';
4
+ export * from './WebdriverIOPageElement.js';
@@ -1,20 +1,20 @@
1
1
  import { f, LogicError } from '@serenity-js/core';
2
2
  import { ByCss, ByCssContainingText, ByDeepCss, ById, ByTagName, ByXPath, Locator, PageElement, RootLocator, Selector } from '@serenity-js/web';
3
- import * as wdio from 'webdriverio';
3
+ import type { Element } from 'webdriverio';
4
4
 
5
- import { WebdriverIOErrorHandler } from '../WebdriverIOErrorHandler';
6
- import { WebdriverIOPageElement } from '../WebdriverIOPageElement';
7
- import { WebdriverIORootLocator } from './WebdriverIORootLocator';
5
+ import { WebdriverIOErrorHandler } from '../WebdriverIOErrorHandler.js';
6
+ import { WebdriverIOPageElement } from '../WebdriverIOPageElement.js';
7
+ import { WebdriverIORootLocator } from './WebdriverIORootLocator.js';
8
8
 
9
9
  /**
10
10
  * WebdriverIO-specific implementation of {@apilink Locator}.
11
11
  *
12
12
  * @group Models
13
13
  */
14
- export class WebdriverIOLocator extends Locator<wdio.Element<'async'>, string> {
14
+ export class WebdriverIOLocator extends Locator<Element, string> {
15
15
 
16
16
  constructor(
17
- parent: RootLocator<wdio.Element<'async'>>,
17
+ parent: RootLocator<Element>,
18
18
  selector: Selector,
19
19
  private readonly errorHandler: WebdriverIOErrorHandler,
20
20
  ) {
@@ -60,7 +60,7 @@ export class WebdriverIOLocator extends Locator<wdio.Element<'async'>, string> {
60
60
  }
61
61
  }
62
62
 
63
- async nativeElement(): Promise<wdio.Element<'async'>> {
63
+ async nativeElement(): Promise<Element> {
64
64
  try {
65
65
  return await this.resolveNativeElement();
66
66
  }
@@ -69,7 +69,7 @@ export class WebdriverIOLocator extends Locator<wdio.Element<'async'>, string> {
69
69
  }
70
70
  }
71
71
 
72
- private async resolveNativeElement(): Promise<wdio.Element<'async'>> {
72
+ private async resolveNativeElement(): Promise<Element> {
73
73
  const parent = await this.parent.nativeElement();
74
74
 
75
75
  if (parent.error) {
@@ -85,24 +85,24 @@ export class WebdriverIOLocator extends Locator<wdio.Element<'async'>, string> {
85
85
  return element;
86
86
  }
87
87
 
88
- async allNativeElements(): Promise<Array<wdio.Element<'async'>>> {
88
+ async allNativeElements(): Promise<Array<Element>> {
89
89
  const parent = await this.parent.nativeElement();
90
90
  return parent.$$(this.nativeSelector());
91
91
  }
92
92
 
93
- of(parent: WebdriverIOLocator): Locator<wdio.Element<'async'>, string> {
93
+ of(parent: WebdriverIOLocator): Locator<Element, string> {
94
94
  return new WebdriverIOLocator(parent, this.selector, this.errorHandler);
95
95
  }
96
96
 
97
- locate(child: WebdriverIOLocator): Locator<wdio.Element<'async'>, string> {
97
+ locate(child: WebdriverIOLocator): Locator<Element, string> {
98
98
  return new WebdriverIOLocator(this, child.selector, this.errorHandler);
99
99
  }
100
100
 
101
- element(): PageElement<wdio.Element<'async'>> {
101
+ element(): PageElement<Element> {
102
102
  return new WebdriverIOPageElement(this);
103
103
  }
104
104
 
105
- async allElements(): Promise<Array<PageElement<wdio.Element<'async'>>>> {
105
+ async allElements(): Promise<Array<PageElement<Element>>> {
106
106
  const elements = await this.allNativeElements();
107
107
 
108
108
  return elements.map(childElement =>
@@ -123,19 +123,19 @@ export class WebdriverIOLocator extends Locator<wdio.Element<'async'>, string> {
123
123
  */
124
124
  class ExistingElementLocator extends WebdriverIOLocator {
125
125
  constructor(
126
- parentRoot: RootLocator<wdio.Element<'async'>>,
126
+ parentRoot: RootLocator<Element>,
127
127
  selector: Selector,
128
128
  errorHandler: WebdriverIOErrorHandler,
129
- private readonly existingNativeElement: wdio.Element<'async'>,
129
+ private readonly existingNativeElement: Element,
130
130
  ) {
131
131
  super(parentRoot, selector, errorHandler);
132
132
  }
133
133
 
134
- async nativeElement(): Promise<wdio.Element<'async'>> {
134
+ async nativeElement(): Promise<Element> {
135
135
  return this.existingNativeElement;
136
136
  }
137
137
 
138
- async allNativeElements(): Promise<Array<wdio.Element<'async'>>> {
138
+ async allNativeElements(): Promise<Array<Element>> {
139
139
  return [ this.existingNativeElement ];
140
140
  }
141
141
  }
@@ -1,13 +1,13 @@
1
1
  import { RootLocator } from '@serenity-js/web';
2
- import * as wdio from 'webdriverio';
2
+ import type { Browser, Element } from 'webdriverio';
3
3
 
4
4
  /**
5
5
  * WebdriverIO-specific implementation of {@apilink RootLocator}.
6
6
  *
7
7
  * @group Models
8
8
  */
9
- export class WebdriverIORootLocator extends RootLocator<wdio.Browser<'async'>> {
10
- constructor(private readonly browser: wdio.Browser<'async'>) {
9
+ export class WebdriverIORootLocator extends RootLocator<Browser> {
10
+ constructor(private readonly browser: Browser) {
11
11
  super();
12
12
  }
13
13
 
@@ -15,11 +15,11 @@ export class WebdriverIORootLocator extends RootLocator<wdio.Browser<'async'>> {
15
15
  return true;
16
16
  }
17
17
 
18
- async nativeElement(): Promise<Pick<wdio.Browser<'async'>, '$' | '$$'>> {
18
+ async nativeElement(): Promise<Pick<Browser, '$' | '$$'>> {
19
19
  return this.browser;
20
20
  }
21
21
 
22
- async switchToFrame(frame: wdio.Element<'async'>): Promise<void> {
22
+ async switchToFrame(frame: Element): Promise<void> {
23
23
  await this.browser.switchToFrame(frame);
24
24
  }
25
25
 
@@ -1,2 +1,2 @@
1
- export * from './WebdriverIOLocator';
2
- export * from './WebdriverIORootLocator';
1
+ export * from './WebdriverIOLocator.js';
2
+ export * from './WebdriverIORootLocator.js';
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebdriverIOConfig.d.ts","sourceRoot":"","sources":["../../src/adapter/WebdriverIOConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4GG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,UAAU;IAEzD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,cAAc,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebdriverIOConfig.js","sourceRoot":"","sources":["../../src/adapter/WebdriverIOConfig.ts"],"names":[],"mappings":""}
@@ -1,17 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.build.json",
3
- "compilerOptions": {
4
- "outDir": "lib",
5
- "rootDir": "src",
6
- "lib": [
7
- "es2019",
8
- "dom"
9
- ],
10
- "types": [
11
- "webdriverio/async"
12
- ]
13
- },
14
- "include": [
15
- "src/**/*.ts"
16
- ]
17
- }
File without changes
File without changes