@serenity-js/webdriverio 2.32.7 → 3.0.0-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/CHANGELOG.md +340 -0
  2. package/lib/adapter/WebdriverIOFrameworkAdapter.js +1 -1
  3. package/lib/adapter/WebdriverIOFrameworkAdapter.js.map +1 -1
  4. package/lib/adapter/WebdriverIONotifier.d.ts +35 -1
  5. package/lib/adapter/WebdriverIONotifier.js +174 -13
  6. package/lib/adapter/WebdriverIONotifier.js.map +1 -1
  7. package/lib/index.d.ts +0 -3
  8. package/lib/index.js +0 -3
  9. package/lib/index.js.map +1 -1
  10. package/lib/screenplay/abilities/{BrowseTheWeb.d.ts → BrowseTheWebWithWebdriverIO.d.ts} +44 -27
  11. package/lib/screenplay/abilities/{BrowseTheWeb.js → BrowseTheWebWithWebdriverIO.js} +112 -32
  12. package/lib/screenplay/abilities/BrowseTheWebWithWebdriverIO.js.map +1 -0
  13. package/lib/screenplay/abilities/index.d.ts +1 -1
  14. package/lib/screenplay/abilities/index.js +1 -1
  15. package/lib/screenplay/abilities/index.js.map +1 -1
  16. package/lib/screenplay/index.d.ts +1 -2
  17. package/lib/screenplay/index.js +1 -2
  18. package/lib/screenplay/index.js.map +1 -1
  19. package/lib/screenplay/models/WebdriverIOCookie.d.ts +8 -0
  20. package/lib/screenplay/models/WebdriverIOCookie.js +39 -0
  21. package/lib/screenplay/models/WebdriverIOCookie.js.map +1 -0
  22. package/lib/screenplay/models/WebdriverIOModalDialog.d.ts +11 -0
  23. package/lib/screenplay/models/WebdriverIOModalDialog.js +40 -0
  24. package/lib/screenplay/models/WebdriverIOModalDialog.js.map +1 -0
  25. package/lib/screenplay/models/WebdriverIOPage.d.ts +24 -0
  26. package/lib/screenplay/models/WebdriverIOPage.js +98 -0
  27. package/lib/screenplay/models/WebdriverIOPage.js.map +1 -0
  28. package/lib/screenplay/models/WebdriverIOPageElement.d.ts +31 -0
  29. package/lib/screenplay/models/WebdriverIOPageElement.js +185 -0
  30. package/lib/screenplay/models/WebdriverIOPageElement.js.map +1 -0
  31. package/lib/screenplay/models/index.d.ts +4 -0
  32. package/lib/{stage → screenplay/models}/index.js +4 -1
  33. package/lib/screenplay/models/index.js.map +1 -0
  34. package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts +9 -0
  35. package/lib/screenplay/models/locators/WebdriverIOLocator.js +22 -0
  36. package/lib/screenplay/models/locators/WebdriverIOLocator.js.map +1 -0
  37. package/lib/screenplay/models/locators/WebdriverIONativeElementRoot.d.ts +2 -0
  38. package/lib/screenplay/{interactions/EnterBuilder.js → models/locators/WebdriverIONativeElementRoot.js} +1 -1
  39. package/lib/screenplay/models/locators/WebdriverIONativeElementRoot.js.map +1 -0
  40. package/lib/screenplay/models/locators/index.d.ts +2 -0
  41. package/lib/{stage/crew/photographer → screenplay/models/locators}/index.js +2 -2
  42. package/lib/screenplay/models/locators/index.js.map +1 -0
  43. package/package.json +15 -25
  44. package/src/adapter/WebdriverIOFrameworkAdapter.ts +2 -0
  45. package/src/adapter/WebdriverIONotifier.ts +225 -23
  46. package/src/index.ts +0 -3
  47. package/src/screenplay/abilities/{BrowseTheWeb.ts → BrowseTheWebWithWebdriverIO.ts} +133 -35
  48. package/src/screenplay/abilities/index.ts +1 -1
  49. package/src/screenplay/index.ts +1 -2
  50. package/src/screenplay/models/WebdriverIOCookie.ts +44 -0
  51. package/src/screenplay/models/WebdriverIOModalDialog.ts +45 -0
  52. package/src/screenplay/models/WebdriverIOPage.ts +120 -0
  53. package/src/screenplay/models/WebdriverIOPageElement.ts +227 -0
  54. package/src/screenplay/models/index.ts +4 -0
  55. package/src/screenplay/models/locators/WebdriverIOLocator.ts +43 -0
  56. package/src/screenplay/models/locators/WebdriverIONativeElementRoot.ts +3 -0
  57. package/src/screenplay/models/locators/index.ts +2 -0
  58. package/lib/expectations/ElementExpectation.d.ts +0 -11
  59. package/lib/expectations/ElementExpectation.js +0 -27
  60. package/lib/expectations/ElementExpectation.js.map +0 -1
  61. package/lib/expectations/index.d.ts +0 -6
  62. package/lib/expectations/index.js +0 -19
  63. package/lib/expectations/index.js.map +0 -1
  64. package/lib/expectations/isActive.d.ts +0 -15
  65. package/lib/expectations/isActive.js +0 -21
  66. package/lib/expectations/isActive.js.map +0 -1
  67. package/lib/expectations/isClickable.d.ts +0 -20
  68. package/lib/expectations/isClickable.js +0 -26
  69. package/lib/expectations/isClickable.js.map +0 -1
  70. package/lib/expectations/isEnabled.d.ts +0 -14
  71. package/lib/expectations/isEnabled.js +0 -20
  72. package/lib/expectations/isEnabled.js.map +0 -1
  73. package/lib/expectations/isPresent.d.ts +0 -15
  74. package/lib/expectations/isPresent.js +0 -21
  75. package/lib/expectations/isPresent.js.map +0 -1
  76. package/lib/expectations/isSelected.d.ts +0 -14
  77. package/lib/expectations/isSelected.js +0 -20
  78. package/lib/expectations/isSelected.js.map +0 -1
  79. package/lib/expectations/isVisible.d.ts +0 -14
  80. package/lib/expectations/isVisible.js +0 -20
  81. package/lib/expectations/isVisible.js.map +0 -1
  82. package/lib/input/Key.d.ts +0 -73
  83. package/lib/input/Key.js +0 -84
  84. package/lib/input/Key.js.map +0 -1
  85. package/lib/input/index.d.ts +0 -1
  86. package/lib/input/index.js +0 -14
  87. package/lib/input/index.js.map +0 -1
  88. package/lib/screenplay/abilities/BrowseTheWeb.js.map +0 -1
  89. package/lib/screenplay/interactions/Clear.d.ts +0 -79
  90. package/lib/screenplay/interactions/Clear.js +0 -97
  91. package/lib/screenplay/interactions/Clear.js.map +0 -1
  92. package/lib/screenplay/interactions/Click.d.ts +0 -73
  93. package/lib/screenplay/interactions/Click.js +0 -84
  94. package/lib/screenplay/interactions/Click.js.map +0 -1
  95. package/lib/screenplay/interactions/DoubleClick.d.ts +0 -90
  96. package/lib/screenplay/interactions/DoubleClick.js +0 -101
  97. package/lib/screenplay/interactions/DoubleClick.js.map +0 -1
  98. package/lib/screenplay/interactions/Enter.d.ts +0 -73
  99. package/lib/screenplay/interactions/Enter.js +0 -87
  100. package/lib/screenplay/interactions/Enter.js.map +0 -1
  101. package/lib/screenplay/interactions/EnterBuilder.d.ts +0 -25
  102. package/lib/screenplay/interactions/EnterBuilder.js.map +0 -1
  103. package/lib/screenplay/interactions/ExecuteScript.d.ts +0 -206
  104. package/lib/screenplay/interactions/ExecuteScript.js +0 -311
  105. package/lib/screenplay/interactions/ExecuteScript.js.map +0 -1
  106. package/lib/screenplay/interactions/Hover.d.ts +0 -78
  107. package/lib/screenplay/interactions/Hover.js +0 -89
  108. package/lib/screenplay/interactions/Hover.js.map +0 -1
  109. package/lib/screenplay/interactions/Navigate.d.ts +0 -141
  110. package/lib/screenplay/interactions/Navigate.js +0 -197
  111. package/lib/screenplay/interactions/Navigate.js.map +0 -1
  112. package/lib/screenplay/interactions/Press.d.ts +0 -84
  113. package/lib/screenplay/interactions/Press.js +0 -152
  114. package/lib/screenplay/interactions/Press.js.map +0 -1
  115. package/lib/screenplay/interactions/PressBuilder.d.ts +0 -26
  116. package/lib/screenplay/interactions/PressBuilder.js +0 -3
  117. package/lib/screenplay/interactions/PressBuilder.js.map +0 -1
  118. package/lib/screenplay/interactions/RightClick.d.ts +0 -89
  119. package/lib/screenplay/interactions/RightClick.js +0 -100
  120. package/lib/screenplay/interactions/RightClick.js.map +0 -1
  121. package/lib/screenplay/interactions/Scroll.d.ts +0 -75
  122. package/lib/screenplay/interactions/Scroll.js +0 -86
  123. package/lib/screenplay/interactions/Scroll.js.map +0 -1
  124. package/lib/screenplay/interactions/Wait.d.ts +0 -143
  125. package/lib/screenplay/interactions/Wait.js +0 -247
  126. package/lib/screenplay/interactions/Wait.js.map +0 -1
  127. package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -32
  128. package/lib/screenplay/interactions/WaitBuilder.js +0 -3
  129. package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
  130. package/lib/screenplay/interactions/WebElementInteraction.d.ts +0 -37
  131. package/lib/screenplay/interactions/WebElementInteraction.js +0 -52
  132. package/lib/screenplay/interactions/WebElementInteraction.js.map +0 -1
  133. package/lib/screenplay/interactions/index.d.ts +0 -13
  134. package/lib/screenplay/interactions/index.js +0 -26
  135. package/lib/screenplay/interactions/index.js.map +0 -1
  136. package/lib/screenplay/questions/Attribute.d.ts +0 -82
  137. package/lib/screenplay/questions/Attribute.js +0 -102
  138. package/lib/screenplay/questions/Attribute.js.map +0 -1
  139. package/lib/screenplay/questions/CSSClasses.d.ts +0 -92
  140. package/lib/screenplay/questions/CSSClasses.js +0 -112
  141. package/lib/screenplay/questions/CSSClasses.js.map +0 -1
  142. package/lib/screenplay/questions/LastScriptExecution.d.ts +0 -14
  143. package/lib/screenplay/questions/LastScriptExecution.js +0 -22
  144. package/lib/screenplay/questions/LastScriptExecution.js.map +0 -1
  145. package/lib/screenplay/questions/NestedTargetBuilder.d.ts +0 -27
  146. package/lib/screenplay/questions/NestedTargetBuilder.js +0 -3
  147. package/lib/screenplay/questions/NestedTargetBuilder.js.map +0 -1
  148. package/lib/screenplay/questions/TargetBuilder.d.ts +0 -25
  149. package/lib/screenplay/questions/TargetBuilder.js +0 -3
  150. package/lib/screenplay/questions/TargetBuilder.js.map +0 -1
  151. package/lib/screenplay/questions/Text.d.ts +0 -95
  152. package/lib/screenplay/questions/Text.js +0 -130
  153. package/lib/screenplay/questions/Text.js.map +0 -1
  154. package/lib/screenplay/questions/Value.d.ts +0 -63
  155. package/lib/screenplay/questions/Value.js +0 -78
  156. package/lib/screenplay/questions/Value.js.map +0 -1
  157. package/lib/screenplay/questions/Website.d.ts +0 -21
  158. package/lib/screenplay/questions/Website.js +0 -31
  159. package/lib/screenplay/questions/Website.js.map +0 -1
  160. package/lib/screenplay/questions/index.d.ts +0 -10
  161. package/lib/screenplay/questions/index.js +0 -23
  162. package/lib/screenplay/questions/index.js.map +0 -1
  163. package/lib/screenplay/questions/lists.d.ts +0 -86
  164. package/lib/screenplay/questions/lists.js +0 -137
  165. package/lib/screenplay/questions/lists.js.map +0 -1
  166. package/lib/screenplay/questions/locators.d.ts +0 -196
  167. package/lib/screenplay/questions/locators.js +0 -219
  168. package/lib/screenplay/questions/locators.js.map +0 -1
  169. package/lib/screenplay/questions/targets.d.ts +0 -254
  170. package/lib/screenplay/questions/targets.js +0 -334
  171. package/lib/screenplay/questions/targets.js.map +0 -1
  172. package/lib/stage/crew/index.d.ts +0 -1
  173. package/lib/stage/crew/index.js +0 -14
  174. package/lib/stage/crew/index.js.map +0 -1
  175. package/lib/stage/crew/photographer/Photographer.d.ts +0 -83
  176. package/lib/stage/crew/photographer/Photographer.js +0 -102
  177. package/lib/stage/crew/photographer/Photographer.js.map +0 -1
  178. package/lib/stage/crew/photographer/index.d.ts +0 -2
  179. package/lib/stage/crew/photographer/index.js.map +0 -1
  180. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +0 -28
  181. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +0 -65
  182. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +0 -1
  183. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +0 -18
  184. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +0 -30
  185. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +0 -1
  186. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +0 -17
  187. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +0 -28
  188. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +0 -1
  189. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +0 -19
  190. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +0 -28
  191. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +0 -1
  192. package/lib/stage/crew/photographer/strategies/index.d.ts +0 -4
  193. package/lib/stage/crew/photographer/strategies/index.js +0 -17
  194. package/lib/stage/crew/photographer/strategies/index.js.map +0 -1
  195. package/lib/stage/index.d.ts +0 -1
  196. package/lib/stage/index.js.map +0 -1
  197. package/src/expectations/ElementExpectation.ts +0 -31
  198. package/src/expectations/index.ts +0 -6
  199. package/src/expectations/isActive.ts +0 -21
  200. package/src/expectations/isClickable.ts +0 -26
  201. package/src/expectations/isEnabled.ts +0 -19
  202. package/src/expectations/isPresent.ts +0 -20
  203. package/src/expectations/isSelected.ts +0 -19
  204. package/src/expectations/isVisible.ts +0 -19
  205. package/src/input/Key.ts +0 -83
  206. package/src/input/index.ts +0 -1
  207. package/src/screenplay/interactions/Clear.ts +0 -102
  208. package/src/screenplay/interactions/Click.ts +0 -85
  209. package/src/screenplay/interactions/DoubleClick.ts +0 -102
  210. package/src/screenplay/interactions/Enter.ts +0 -93
  211. package/src/screenplay/interactions/EnterBuilder.ts +0 -27
  212. package/src/screenplay/interactions/ExecuteScript.ts +0 -344
  213. package/src/screenplay/interactions/Hover.ts +0 -90
  214. package/src/screenplay/interactions/Navigate.ts +0 -208
  215. package/src/screenplay/interactions/Press.ts +0 -172
  216. package/src/screenplay/interactions/PressBuilder.ts +0 -28
  217. package/src/screenplay/interactions/RightClick.ts +0 -100
  218. package/src/screenplay/interactions/Scroll.ts +0 -87
  219. package/src/screenplay/interactions/Wait.ts +0 -267
  220. package/src/screenplay/interactions/WaitBuilder.ts +0 -34
  221. package/src/screenplay/interactions/WebElementInteraction.ts +0 -56
  222. package/src/screenplay/interactions/index.ts +0 -13
  223. package/src/screenplay/questions/Attribute.ts +0 -112
  224. package/src/screenplay/questions/CSSClasses.ts +0 -116
  225. package/src/screenplay/questions/LastScriptExecution.ts +0 -21
  226. package/src/screenplay/questions/NestedTargetBuilder.ts +0 -30
  227. package/src/screenplay/questions/TargetBuilder.ts +0 -27
  228. package/src/screenplay/questions/Text.ts +0 -140
  229. package/src/screenplay/questions/Value.ts +0 -82
  230. package/src/screenplay/questions/Website.ts +0 -34
  231. package/src/screenplay/questions/index.ts +0 -10
  232. package/src/screenplay/questions/lists.ts +0 -161
  233. package/src/screenplay/questions/locators.ts +0 -254
  234. package/src/screenplay/questions/targets.ts +0 -401
  235. package/src/stage/crew/index.ts +0 -1
  236. package/src/stage/crew/photographer/Photographer.ts +0 -108
  237. package/src/stage/crew/photographer/index.ts +0 -2
  238. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +0 -103
  239. package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +0 -28
  240. package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +0 -26
  241. package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +0 -26
  242. package/src/stage/crew/photographer/strategies/index.ts +0 -4
  243. package/src/stage/index.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,346 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.0.0-rc.10](https://github.com/serenity-js/serenity-js/compare/v2.33.0...v3.0.0-rc.10) (2022-02-03)
7
+
8
+
9
+
10
+ # [3.0.0-rc.9](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.8...v3.0.0-rc.9) (2022-02-01)
11
+
12
+
13
+ ### Features
14
+
15
+ * **web:** isVisible() works with Web elements in Shadow DOM ([cf84fb0](https://github.com/serenity-js/serenity-js/commit/cf84fb072a6b813338b68bb1dec3932ea8709e3e)), closes [#1085](https://github.com/serenity-js/serenity-js/issues/1085)
16
+
17
+
18
+
19
+ # [3.0.0-rc.8](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.7...v3.0.0-rc.8) (2022-01-28)
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * **webdriverio:** corrected visibility of the `browser` field on BrowseTheWebWithWebdriverIO ([0de725f](https://github.com/serenity-js/serenity-js/commit/0de725f71ec67c496b16fabdbc7e1a06715732fa))
25
+
26
+
27
+
28
+ # [3.0.0-rc.7](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.6...v3.0.0-rc.7) (2022-01-28)
29
+
30
+
31
+
32
+ # [3.0.0-rc.6](https://github.com/serenity-js/serenity-js/compare/v2.32.7...v3.0.0-rc.6) (2022-01-10)
33
+
34
+
35
+
36
+ # [3.0.0-rc.5](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.4...v3.0.0-rc.5) (2022-01-07)
37
+
38
+
39
+ ### Features
40
+
41
+ * **web:** support for advanced PageElement locator patterns ([c1ff8b7](https://github.com/serenity-js/serenity-js/commit/c1ff8b7539ebc1da8f79ea2b6d17bb01c42f443d)), closes [#1084](https://github.com/serenity-js/serenity-js/issues/1084)
42
+
43
+
44
+
45
+ # [3.0.0-rc.4](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.3...v3.0.0-rc.4) (2021-12-30)
46
+
47
+
48
+
49
+ # [3.0.0-rc.3](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.2...v3.0.0-rc.3) (2021-12-29)
50
+
51
+
52
+ ### Bug Fixes
53
+
54
+ * **core:** refactored Mappable so that it's easier to implement filters ([176e0cd](https://github.com/serenity-js/serenity-js/commit/176e0cd0303d63271477b2b7a8e7b0572dda99a0)), closes [#1074](https://github.com/serenity-js/serenity-js/issues/1074)
55
+ * **deps:** updated tiny-types to 1.17.0 ([3187051](https://github.com/serenity-js/serenity-js/commit/3187051594158b4b450c82e851e417fd2ed21652))
56
+ * **web:** refactored Selector and NativeElementLocator classes to simplify the implementation ([f0c8f11](https://github.com/serenity-js/serenity-js/commit/f0c8f113433958877d36f13d0bc7f355ea68d280))
57
+
58
+
59
+ ### Features
60
+
61
+ * **web:** isVisible checks if the element is in viewport and not hidden behind other elements ([429040f](https://github.com/serenity-js/serenity-js/commit/429040fb32b04cd4bc7524100635203fd8128eb6))
62
+ * **web:** re-introduced PageElements.where DSL and universal By selectors ([39fe0a1](https://github.com/serenity-js/serenity-js/commit/39fe0a10edf7f652e93911159e4a4689c36d6876)), closes [#1081](https://github.com/serenity-js/serenity-js/issues/1081)
63
+
64
+
65
+
66
+ # [3.0.0-rc.2](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.1...v3.0.0-rc.2) (2021-12-09)
67
+
68
+
69
+
70
+ # [3.0.0-rc.1](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.0...v3.0.0-rc.1) (2021-12-09)
71
+
72
+
73
+
74
+ # [3.0.0-rc.0](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v3.0.0-rc.0) (2021-12-08)
75
+
76
+
77
+ ### Bug Fixes
78
+
79
+ * **core:** 3.0 RC ([469d54e](https://github.com/serenity-js/serenity-js/commit/469d54e4f81ef430566b93852e3174826f8ef672)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
80
+ * **deps:** updated WebdriverIO ([9de63d4](https://github.com/serenity-js/serenity-js/commit/9de63d460d9735abfc5bb066671f6f28c3274597))
81
+ * **deps:** web ([b075b8e](https://github.com/serenity-js/serenity-js/commit/b075b8ecd8e00014469dda15a90175d60ed80c91))
82
+ * **web:** corrected timestamp rounding when retrieving the expiry date of a cookie ([d636965](https://github.com/serenity-js/serenity-js/commit/d63696586618cd701e703e33dd8b476efaac65b6))
83
+ * **webdriverio:** ensure getLastScriptExecutionResult returns undefined for void functions ([aa00dfd](https://github.com/serenity-js/serenity-js/commit/aa00dfd3ab320a5d7ee786feea1ce0355ac42638))
84
+ * **webdriverio:** fixed synchronisation issue in ModalDialog ([12324b2](https://github.com/serenity-js/serenity-js/commit/12324b2cef9c161df8b68960d5b958c1f208f70a)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
85
+ * **webdriverio:** separated UIElement.hoverOver from UIElement.scrollIntoView ([cf4ca2c](https://github.com/serenity-js/serenity-js/commit/cf4ca2c531e0f90f9a27917e322359c13bfbc6e6))
86
+ * **webdriverio:** updated WebdriverIO to 7.13.2 ([ef79d19](https://github.com/serenity-js/serenity-js/commit/ef79d1962224e8dd04a1b0e099662c91ea118dfe))
87
+ * **webdriverio:** updated WebdriverIO to 7.16.7 ([3316e29](https://github.com/serenity-js/serenity-js/commit/3316e2905e68b1cabf76086da353072376f95f4a))
88
+ * **web:** removed window-specific APIs from BrowseTheWeb that got replaced by Page ([918f447](https://github.com/serenity-js/serenity-js/commit/918f447c1d8f326fbf5730f1aa61108045556212)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
89
+ * **web:** renamed Element and associated classes to PageElement to avoid name conflicts ([1e4204b](https://github.com/serenity-js/serenity-js/commit/1e4204b5507469e6574c87a6d84454e39e8a813e))
90
+ * **web:** renamed PageElementList to PageElements to improve readability ([a9903a7](https://github.com/serenity-js/serenity-js/commit/a9903a7389b00106ef94d2bdb9f86a7fd04be541)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
91
+ * **web:** standardised getters across PageElement implementations ([336472b](https://github.com/serenity-js/serenity-js/commit/336472b1a6882412f6a88483e51266909a1d51d0))
92
+
93
+
94
+ ### Features
95
+
96
+ * **protractor:** compatibility with @serenity-js/web ([9df4db2](https://github.com/serenity-js/serenity-js/commit/9df4db27a6e0ae62bf0d0e679a170d4865041043)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
97
+ * **web:** a common way to run the tests for all the web adapters ([c7e584a](https://github.com/serenity-js/serenity-js/commit/c7e584a9bf288ebc7781affdb720097527e8ed3a))
98
+ * **web:** added Page.viewportSize and Page.setViewportSize methods ([4cabbe2](https://github.com/serenity-js/serenity-js/commit/4cabbe21a7fbac3457c6a6ea3d4442a62c3f1f3c))
99
+ * **web:** all Screenplay APIs migrated from @serenity-js/webdriverio to @serenity-js/web ([7b6b95d](https://github.com/serenity-js/serenity-js/commit/7b6b95dc255446c29ae213ba2a1d142d426d16c8))
100
+ * **webdriverio:** support for native WebdriverIO services ([8d5ad22](https://github.com/serenity-js/serenity-js/commit/8d5ad22594cdb2ebddedc58a30259ca8430e360c))
101
+ * **web:** interaction to set a Cookie ([c056439](https://github.com/serenity-js/serenity-js/commit/c056439746a8f57c3edd937b8862f2babb70e94e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
102
+ * **web:** interaction to setViewportSize of a Page ([dd7f180](https://github.com/serenity-js/serenity-js/commit/dd7f18057b857d2e69c19265888bfd5b15fda21b))
103
+ * **web:** ModalDialog available for both Protractor and WebdriverIO adapters ([ef3c566](https://github.com/serenity-js/serenity-js/commit/ef3c566aed12b52aa22c54058992d369172b8597)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
104
+ * **web:** new module @serenity-js/web to provide Web-related Screenplay Pattern APIs ([bead861](https://github.com/serenity-js/serenity-js/commit/bead8612af1a5c99b775e680a3904f44d0281cf9))
105
+ * **web:** Page.url() and Page.title() replace Website.url() and Website.title() ([49fe009](https://github.com/serenity-js/serenity-js/commit/49fe0094422ab53ec67d4ba303f80c33e382eebd)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
106
+ * **web:** removed Target in favour of PageElement ([69496c4](https://github.com/serenity-js/serenity-js/commit/69496c47c4a1ec7b92e7ab6c83da1559e926f28e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
107
+ * **web:** support for switching browsing context ([a73a635](https://github.com/serenity-js/serenity-js/commit/a73a635f93183d67229acde78e74526564008869)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
108
+ * **web:** support for working with cookies ([39cde6d](https://github.com/serenity-js/serenity-js/commit/39cde6de7a36d27a8b1c596493efbec94900af6b)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
109
+
110
+
111
+ ### BREAKING CHANGES
112
+
113
+ * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
114
+ modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
115
+
116
+
117
+
118
+
119
+
120
+ # [3.0.0-rc.9](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.8...v3.0.0-rc.9) (2022-02-01)
121
+
122
+
123
+ ### Features
124
+
125
+ * **web:** isVisible() works with Web elements in Shadow DOM ([cf84fb0](https://github.com/serenity-js/serenity-js/commit/cf84fb072a6b813338b68bb1dec3932ea8709e3e)), closes [#1085](https://github.com/serenity-js/serenity-js/issues/1085)
126
+
127
+
128
+
129
+
130
+
131
+ # [3.0.0-rc.8](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.7...v3.0.0-rc.8) (2022-01-28)
132
+
133
+
134
+ ### Bug Fixes
135
+
136
+ * **webdriverio:** corrected visibility of the `browser` field on BrowseTheWebWithWebdriverIO ([0de725f](https://github.com/serenity-js/serenity-js/commit/0de725f71ec67c496b16fabdbc7e1a06715732fa))
137
+
138
+
139
+
140
+
141
+
142
+ # [3.0.0-rc.7](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.6...v3.0.0-rc.7) (2022-01-28)
143
+
144
+ **Note:** Version bump only for package @serenity-js/webdriverio
145
+
146
+
147
+
148
+
149
+
150
+ # [3.0.0-rc.6](https://github.com/serenity-js/serenity-js/compare/v2.32.7...v3.0.0-rc.6) (2022-01-10)
151
+
152
+
153
+
154
+ # [3.0.0-rc.5](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.4...v3.0.0-rc.5) (2022-01-07)
155
+
156
+
157
+ ### Features
158
+
159
+ * **web:** support for advanced PageElement locator patterns ([c1ff8b7](https://github.com/serenity-js/serenity-js/commit/c1ff8b7539ebc1da8f79ea2b6d17bb01c42f443d)), closes [#1084](https://github.com/serenity-js/serenity-js/issues/1084)
160
+
161
+
162
+
163
+ # [3.0.0-rc.4](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.3...v3.0.0-rc.4) (2021-12-30)
164
+
165
+
166
+
167
+ # [3.0.0-rc.3](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.2...v3.0.0-rc.3) (2021-12-29)
168
+
169
+
170
+ ### Bug Fixes
171
+
172
+ * **core:** refactored Mappable so that it's easier to implement filters ([176e0cd](https://github.com/serenity-js/serenity-js/commit/176e0cd0303d63271477b2b7a8e7b0572dda99a0)), closes [#1074](https://github.com/serenity-js/serenity-js/issues/1074)
173
+ * **deps:** updated tiny-types to 1.17.0 ([3187051](https://github.com/serenity-js/serenity-js/commit/3187051594158b4b450c82e851e417fd2ed21652))
174
+ * **web:** refactored Selector and NativeElementLocator classes to simplify the implementation ([f0c8f11](https://github.com/serenity-js/serenity-js/commit/f0c8f113433958877d36f13d0bc7f355ea68d280))
175
+
176
+
177
+ ### Features
178
+
179
+ * **web:** isVisible checks if the element is in viewport and not hidden behind other elements ([429040f](https://github.com/serenity-js/serenity-js/commit/429040fb32b04cd4bc7524100635203fd8128eb6))
180
+ * **web:** re-introduced PageElements.where DSL and universal By selectors ([39fe0a1](https://github.com/serenity-js/serenity-js/commit/39fe0a10edf7f652e93911159e4a4689c36d6876)), closes [#1081](https://github.com/serenity-js/serenity-js/issues/1081)
181
+
182
+
183
+
184
+ # [3.0.0-rc.2](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.1...v3.0.0-rc.2) (2021-12-09)
185
+
186
+
187
+
188
+ # [3.0.0-rc.1](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.0...v3.0.0-rc.1) (2021-12-09)
189
+
190
+
191
+
192
+ # [3.0.0-rc.0](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v3.0.0-rc.0) (2021-12-08)
193
+
194
+
195
+ ### Bug Fixes
196
+
197
+ * **core:** 3.0 RC ([469d54e](https://github.com/serenity-js/serenity-js/commit/469d54e4f81ef430566b93852e3174826f8ef672)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
198
+ * **deps:** updated WebdriverIO ([9de63d4](https://github.com/serenity-js/serenity-js/commit/9de63d460d9735abfc5bb066671f6f28c3274597))
199
+ * **deps:** web ([b075b8e](https://github.com/serenity-js/serenity-js/commit/b075b8ecd8e00014469dda15a90175d60ed80c91))
200
+ * **web:** corrected timestamp rounding when retrieving the expiry date of a cookie ([d636965](https://github.com/serenity-js/serenity-js/commit/d63696586618cd701e703e33dd8b476efaac65b6))
201
+ * **webdriverio:** ensure getLastScriptExecutionResult returns undefined for void functions ([aa00dfd](https://github.com/serenity-js/serenity-js/commit/aa00dfd3ab320a5d7ee786feea1ce0355ac42638))
202
+ * **webdriverio:** fixed synchronisation issue in ModalDialog ([12324b2](https://github.com/serenity-js/serenity-js/commit/12324b2cef9c161df8b68960d5b958c1f208f70a)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
203
+ * **webdriverio:** separated UIElement.hoverOver from UIElement.scrollIntoView ([cf4ca2c](https://github.com/serenity-js/serenity-js/commit/cf4ca2c531e0f90f9a27917e322359c13bfbc6e6))
204
+ * **webdriverio:** updated WebdriverIO to 7.13.2 ([ef79d19](https://github.com/serenity-js/serenity-js/commit/ef79d1962224e8dd04a1b0e099662c91ea118dfe))
205
+ * **webdriverio:** updated WebdriverIO to 7.16.7 ([3316e29](https://github.com/serenity-js/serenity-js/commit/3316e2905e68b1cabf76086da353072376f95f4a))
206
+ * **web:** removed window-specific APIs from BrowseTheWeb that got replaced by Page ([918f447](https://github.com/serenity-js/serenity-js/commit/918f447c1d8f326fbf5730f1aa61108045556212)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
207
+ * **web:** renamed Element and associated classes to PageElement to avoid name conflicts ([1e4204b](https://github.com/serenity-js/serenity-js/commit/1e4204b5507469e6574c87a6d84454e39e8a813e))
208
+ * **web:** renamed PageElementList to PageElements to improve readability ([a9903a7](https://github.com/serenity-js/serenity-js/commit/a9903a7389b00106ef94d2bdb9f86a7fd04be541)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
209
+ * **web:** standardised getters across PageElement implementations ([336472b](https://github.com/serenity-js/serenity-js/commit/336472b1a6882412f6a88483e51266909a1d51d0))
210
+
211
+
212
+ ### Features
213
+
214
+ * **protractor:** compatibility with @serenity-js/web ([9df4db2](https://github.com/serenity-js/serenity-js/commit/9df4db27a6e0ae62bf0d0e679a170d4865041043)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
215
+ * **web:** a common way to run the tests for all the web adapters ([c7e584a](https://github.com/serenity-js/serenity-js/commit/c7e584a9bf288ebc7781affdb720097527e8ed3a))
216
+ * **web:** added Page.viewportSize and Page.setViewportSize methods ([4cabbe2](https://github.com/serenity-js/serenity-js/commit/4cabbe21a7fbac3457c6a6ea3d4442a62c3f1f3c))
217
+ * **web:** all Screenplay APIs migrated from @serenity-js/webdriverio to @serenity-js/web ([7b6b95d](https://github.com/serenity-js/serenity-js/commit/7b6b95dc255446c29ae213ba2a1d142d426d16c8))
218
+ * **webdriverio:** support for native WebdriverIO services ([8d5ad22](https://github.com/serenity-js/serenity-js/commit/8d5ad22594cdb2ebddedc58a30259ca8430e360c))
219
+ * **web:** interaction to set a Cookie ([c056439](https://github.com/serenity-js/serenity-js/commit/c056439746a8f57c3edd937b8862f2babb70e94e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
220
+ * **web:** interaction to setViewportSize of a Page ([dd7f180](https://github.com/serenity-js/serenity-js/commit/dd7f18057b857d2e69c19265888bfd5b15fda21b))
221
+ * **web:** ModalDialog available for both Protractor and WebdriverIO adapters ([ef3c566](https://github.com/serenity-js/serenity-js/commit/ef3c566aed12b52aa22c54058992d369172b8597)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
222
+ * **web:** new module @serenity-js/web to provide Web-related Screenplay Pattern APIs ([bead861](https://github.com/serenity-js/serenity-js/commit/bead8612af1a5c99b775e680a3904f44d0281cf9))
223
+ * **web:** Page.url() and Page.title() replace Website.url() and Website.title() ([49fe009](https://github.com/serenity-js/serenity-js/commit/49fe0094422ab53ec67d4ba303f80c33e382eebd)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
224
+ * **web:** removed Target in favour of PageElement ([69496c4](https://github.com/serenity-js/serenity-js/commit/69496c47c4a1ec7b92e7ab6c83da1559e926f28e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
225
+ * **web:** support for switching browsing context ([a73a635](https://github.com/serenity-js/serenity-js/commit/a73a635f93183d67229acde78e74526564008869)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
226
+ * **web:** support for working with cookies ([39cde6d](https://github.com/serenity-js/serenity-js/commit/39cde6de7a36d27a8b1c596493efbec94900af6b)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
227
+
228
+
229
+ ### BREAKING CHANGES
230
+
231
+ * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
232
+ modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
233
+
234
+
235
+
236
+
237
+
238
+ # [3.0.0-rc.5](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.4...v3.0.0-rc.5) (2022-01-07)
239
+
240
+
241
+ ### Features
242
+
243
+ * **web:** support for advanced PageElement locator patterns ([c1ff8b7](https://github.com/serenity-js/serenity-js/commit/c1ff8b7539ebc1da8f79ea2b6d17bb01c42f443d)), closes [#1084](https://github.com/serenity-js/serenity-js/issues/1084)
244
+
245
+
246
+
247
+
248
+
249
+ # [3.0.0-rc.4](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.3...v3.0.0-rc.4) (2021-12-30)
250
+
251
+ **Note:** Version bump only for package @serenity-js/webdriverio
252
+
253
+
254
+
255
+
256
+
257
+ # [3.0.0-rc.3](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.2...v3.0.0-rc.3) (2021-12-29)
258
+
259
+
260
+ ### Bug Fixes
261
+
262
+ * **core:** refactored Mappable so that it's easier to implement filters ([176e0cd](https://github.com/serenity-js/serenity-js/commit/176e0cd0303d63271477b2b7a8e7b0572dda99a0)), closes [#1074](https://github.com/serenity-js/serenity-js/issues/1074)
263
+ * **deps:** updated tiny-types to 1.17.0 ([3187051](https://github.com/serenity-js/serenity-js/commit/3187051594158b4b450c82e851e417fd2ed21652))
264
+ * **web:** refactored Selector and NativeElementLocator classes to simplify the implementation ([f0c8f11](https://github.com/serenity-js/serenity-js/commit/f0c8f113433958877d36f13d0bc7f355ea68d280))
265
+
266
+
267
+ ### Features
268
+
269
+ * **web:** isVisible checks if the element is in viewport and not hidden behind other elements ([429040f](https://github.com/serenity-js/serenity-js/commit/429040fb32b04cd4bc7524100635203fd8128eb6))
270
+ * **web:** re-introduced PageElements.where DSL and universal By selectors ([39fe0a1](https://github.com/serenity-js/serenity-js/commit/39fe0a10edf7f652e93911159e4a4689c36d6876)), closes [#1081](https://github.com/serenity-js/serenity-js/issues/1081)
271
+
272
+
273
+
274
+
275
+
276
+ # [3.0.0-rc.2](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.1...v3.0.0-rc.2) (2021-12-09)
277
+
278
+ **Note:** Version bump only for package @serenity-js/webdriverio
279
+
280
+
281
+
282
+
283
+
284
+ # [3.0.0-rc.1](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.0...v3.0.0-rc.1) (2021-12-09)
285
+
286
+ **Note:** Version bump only for package @serenity-js/webdriverio
287
+
288
+
289
+
290
+
291
+
292
+ # [3.0.0-rc.0](https://github.com/serenity-js/serenity-js/compare/v2.32.5...v3.0.0-rc.0) (2021-12-08)
293
+
294
+
295
+ ### Bug Fixes
296
+
297
+ * **core:** 3.0 RC ([469d54e](https://github.com/serenity-js/serenity-js/commit/469d54e4f81ef430566b93852e3174826f8ef672)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
298
+ * **deps:** updated WebdriverIO ([9de63d4](https://github.com/serenity-js/serenity-js/commit/9de63d460d9735abfc5bb066671f6f28c3274597))
299
+ * **deps:** web ([b075b8e](https://github.com/serenity-js/serenity-js/commit/b075b8ecd8e00014469dda15a90175d60ed80c91))
300
+ * **web:** corrected timestamp rounding when retrieving the expiry date of a cookie ([d636965](https://github.com/serenity-js/serenity-js/commit/d63696586618cd701e703e33dd8b476efaac65b6))
301
+ * **webdriverio:** ensure getLastScriptExecutionResult returns undefined for void functions ([aa00dfd](https://github.com/serenity-js/serenity-js/commit/aa00dfd3ab320a5d7ee786feea1ce0355ac42638))
302
+ * **webdriverio:** fixed synchronisation issue in ModalDialog ([12324b2](https://github.com/serenity-js/serenity-js/commit/12324b2cef9c161df8b68960d5b958c1f208f70a)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
303
+ * **webdriverio:** separated UIElement.hoverOver from UIElement.scrollIntoView ([cf4ca2c](https://github.com/serenity-js/serenity-js/commit/cf4ca2c531e0f90f9a27917e322359c13bfbc6e6))
304
+ * **webdriverio:** updated WebdriverIO to 7.13.2 ([ef79d19](https://github.com/serenity-js/serenity-js/commit/ef79d1962224e8dd04a1b0e099662c91ea118dfe))
305
+ * **webdriverio:** updated WebdriverIO to 7.16.7 ([3316e29](https://github.com/serenity-js/serenity-js/commit/3316e2905e68b1cabf76086da353072376f95f4a))
306
+ * **web:** removed window-specific APIs from BrowseTheWeb that got replaced by Page ([918f447](https://github.com/serenity-js/serenity-js/commit/918f447c1d8f326fbf5730f1aa61108045556212)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
307
+ * **web:** renamed Element and associated classes to PageElement to avoid name conflicts ([1e4204b](https://github.com/serenity-js/serenity-js/commit/1e4204b5507469e6574c87a6d84454e39e8a813e))
308
+ * **web:** renamed PageElementList to PageElements to improve readability ([a9903a7](https://github.com/serenity-js/serenity-js/commit/a9903a7389b00106ef94d2bdb9f86a7fd04be541)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
309
+ * **web:** standardised getters across PageElement implementations ([336472b](https://github.com/serenity-js/serenity-js/commit/336472b1a6882412f6a88483e51266909a1d51d0))
310
+
311
+
312
+ ### Features
313
+
314
+ * **protractor:** compatibility with @serenity-js/web ([9df4db2](https://github.com/serenity-js/serenity-js/commit/9df4db27a6e0ae62bf0d0e679a170d4865041043)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
315
+ * **web:** a common way to run the tests for all the web adapters ([c7e584a](https://github.com/serenity-js/serenity-js/commit/c7e584a9bf288ebc7781affdb720097527e8ed3a))
316
+ * **web:** added Page.viewportSize and Page.setViewportSize methods ([4cabbe2](https://github.com/serenity-js/serenity-js/commit/4cabbe21a7fbac3457c6a6ea3d4442a62c3f1f3c))
317
+ * **web:** all Screenplay APIs migrated from @serenity-js/webdriverio to @serenity-js/web ([7b6b95d](https://github.com/serenity-js/serenity-js/commit/7b6b95dc255446c29ae213ba2a1d142d426d16c8))
318
+ * **webdriverio:** support for native WebdriverIO services ([8d5ad22](https://github.com/serenity-js/serenity-js/commit/8d5ad22594cdb2ebddedc58a30259ca8430e360c))
319
+ * **web:** interaction to set a Cookie ([c056439](https://github.com/serenity-js/serenity-js/commit/c056439746a8f57c3edd937b8862f2babb70e94e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
320
+ * **web:** interaction to setViewportSize of a Page ([dd7f180](https://github.com/serenity-js/serenity-js/commit/dd7f18057b857d2e69c19265888bfd5b15fda21b))
321
+ * **web:** ModalDialog available for both Protractor and WebdriverIO adapters ([ef3c566](https://github.com/serenity-js/serenity-js/commit/ef3c566aed12b52aa22c54058992d369172b8597)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
322
+ * **web:** new module @serenity-js/web to provide Web-related Screenplay Pattern APIs ([bead861](https://github.com/serenity-js/serenity-js/commit/bead8612af1a5c99b775e680a3904f44d0281cf9))
323
+ * **web:** Page.url() and Page.title() replace Website.url() and Website.title() ([49fe009](https://github.com/serenity-js/serenity-js/commit/49fe0094422ab53ec67d4ba303f80c33e382eebd)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
324
+ * **web:** removed Target in favour of PageElement ([69496c4](https://github.com/serenity-js/serenity-js/commit/69496c47c4a1ec7b92e7ab6c83da1559e926f28e)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
325
+ * **web:** support for switching browsing context ([a73a635](https://github.com/serenity-js/serenity-js/commit/a73a635f93183d67229acde78e74526564008869)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
326
+ * **web:** support for working with cookies ([39cde6d](https://github.com/serenity-js/serenity-js/commit/39cde6de7a36d27a8b1c596493efbec94900af6b)), closes [#805](https://github.com/serenity-js/serenity-js/issues/805)
327
+
328
+
329
+ ### BREAKING CHANGES
330
+
331
+ * **core:** Introduced @serenity-js/web - a shared library for Serenity/JS Web integration
332
+ modules such as @serenity-js/protractor and @serenity-js/webdriverio. Dropped support for Node 12.
333
+
334
+
335
+
336
+
337
+
338
+ # [2.33.0](https://github.com/serenity-js/serenity-js/compare/v2.32.7...v2.33.0) (2022-02-03)
339
+
340
+ **Note:** Version bump only for package @serenity-js/webdriverio
341
+
342
+
343
+
344
+
345
+
6
346
  ## [2.32.7](https://github.com/serenity-js/serenity-js/compare/v2.32.6...v2.32.7) (2022-01-10)
7
347
 
8
348
 
@@ -30,7 +30,7 @@ class WebdriverIOFrameworkAdapter {
30
30
  reporter._reporters.push(reporter.initReporter([
31
31
  reporter_1.BrowserCapabilitiesReporter, { serenity: this.serenity },
32
32
  ]));
33
- this.notifier = new WebdriverIONotifier_1.WebdriverIONotifier(reporter, this.adapter.successThreshold(), cid, this.specs);
33
+ this.notifier = new WebdriverIONotifier_1.WebdriverIONotifier(config, capabilities, reporter, this.adapter.successThreshold(), cid, this.specs);
34
34
  const outputStreamBuffer = new reporter_1.OutputStreamBuffer(`[${this.cid}]`);
35
35
  const outputStreamBufferPrinter = new OutputStreamBufferPrinter_1.OutputStreamBufferPrinter(outputStreamBuffer, reporter.getWriteStreamObject('@serenity-js/webdriverio'));
36
36
  this.serenity.configure({
@@ -1 +1 @@
1
- {"version":3,"file":"WebdriverIOFrameworkAdapter.js","sourceRoot":"","sources":["../../src/adapter/WebdriverIOFrameworkAdapter.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAI/D,qDAAgD;AAEhD,yCAAwH;AACxH,oFAAiF;AACjF,yDAAsD;AAEtD,+DAA4D;AAC5D,uCAAwC;AAExC;;GAEG;AACH,MAAa,2BAA2B;IAKpC,YACqB,QAAkB,EAClB,MAAoB,EACpB,GAAS,EACT,GAAW,EAC5B,iBAAoC,EACnB,KAAe,EACf,YAA2C,EAC5D,QAAmE;QAPlD,aAAQ,GAAR,QAAQ,CAAU;QAClB,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAM;QACT,QAAG,GAAH,GAAG,CAAQ;QAEX,UAAK,GAAL,KAAK,CAAU;QACf,iBAAY,GAAZ,YAAY,CAA+B;QAG5D,MAAM,MAAM,GAAG,SAAS,CAAoB,IAAI,CAAC,aAAa,EAAE,EAAE,iBAAiB,EAAE;YACjF,iBAAiB,EAAE,+BAAa;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;aAC/D,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE9B,yGAAyG;QACzG,0IAA0I;QAC1I,uIAAuI;QACtI,QAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACpD,sCAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;SAC3D,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,QAAQ,GAAG,IAAI,yCAAmB,CACnC,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAC/B,GAAG,EACH,IAAI,CAAC,KAAK,CACb,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,6BAAkB,CAC7C,IAAI,IAAI,CAAC,GAAG,GAAG,CAClB,CAAC;QAEF,MAAM,yBAAyB,GAAG,IAAI,qDAAyB,CAC3D,kBAAkB,EAClB,QAAQ,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,CAC5D,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpB,YAAY,EAAI,kBAAkB;YAClC,UAAU,EAAM,MAAM,CAAC,QAAQ,CAAC,UAAU;YAC1C,MAAM,EAAU,MAAM,CAAC,QAAQ,CAAC,MAAM;YACtC,IAAI,EAAE;gBACF,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;gBACvB,IAAI,CAAC,QAAQ;gBACb,yBAAyB;aAC5B;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAI;QAEN,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAC/B,CAAC;IACN,CAAC;IAEO,aAAa;QACjB,OAAO;YACH,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,uBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC;iBAC9E;aACJ;SACJ,CAAA;IACL,CAAC;CACJ;AAnFD,kEAmFC"}
1
+ {"version":3,"file":"WebdriverIOFrameworkAdapter.js","sourceRoot":"","sources":["../../src/adapter/WebdriverIOFrameworkAdapter.ts"],"names":[],"mappings":";;;AAAA,4CAA+D;AAI/D,qDAAgD;AAEhD,yCAAwH;AACxH,oFAAiF;AACjF,yDAAsD;AAEtD,+DAA4D;AAC5D,uCAAwC;AAExC;;GAEG;AACH,MAAa,2BAA2B;IAKpC,YACqB,QAAkB,EAClB,MAAoB,EACpB,GAAS,EACT,GAAW,EAC5B,iBAAoC,EACnB,KAAe,EACf,YAA2C,EAC5D,QAAmE;QAPlD,aAAQ,GAAR,QAAQ,CAAU;QAClB,WAAM,GAAN,MAAM,CAAc;QACpB,QAAG,GAAH,GAAG,CAAM;QACT,QAAG,GAAH,GAAG,CAAQ;QAEX,UAAK,GAAL,KAAK,CAAU;QACf,iBAAY,GAAZ,YAAY,CAA+B;QAG5D,MAAM,MAAM,GAAG,SAAS,CAAoB,IAAI,CAAC,aAAa,EAAE,EAAE,iBAAiB,EAAE;YACjF,iBAAiB,EAAE,+BAAa;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;aAC/D,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE9B,yGAAyG;QACzG,0IAA0I;QAC1I,uIAAuI;QACtI,QAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YACpD,sCAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;SAC3D,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,QAAQ,GAAG,IAAI,yCAAmB,CACnC,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAC/B,GAAG,EACH,IAAI,CAAC,KAAK,CACb,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,6BAAkB,CAC7C,IAAI,IAAI,CAAC,GAAG,GAAG,CAClB,CAAC;QAEF,MAAM,yBAAyB,GAAG,IAAI,qDAAyB,CAC3D,kBAAkB,EAClB,QAAQ,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,CAC5D,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YACpB,YAAY,EAAI,kBAAkB;YAClC,UAAU,EAAM,MAAM,CAAC,QAAQ,CAAC,UAAU;YAC1C,MAAM,EAAU,MAAM,CAAC,QAAQ,CAAC,MAAM;YACtC,IAAI,EAAE;gBACF,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;gBACvB,IAAI,CAAC,QAAQ;gBACb,yBAAyB;aAC5B;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAI;QAEN,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAChC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAC/B,CAAC;IACN,CAAC;IAEO,aAAa;QACjB,OAAO;YACH,QAAQ,EAAE;gBACN,IAAI,EAAE;oBACF,uBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,sBAAsB,CAAC;iBAC9E;aACJ;SACJ,CAAA;IACL,CAAC;CACJ;AArFD,kEAqFC"}
@@ -2,24 +2,37 @@
2
2
  import { Stage, StageCrewMember } from '@serenity-js/core';
3
3
  import { DomainEvent } from '@serenity-js/core/lib/events';
4
4
  import { Outcome } from '@serenity-js/core/lib/model';
5
+ import { RemoteCapability } from '@wdio/types/build/Capabilities';
5
6
  import type { EventEmitter } from 'events';
7
+ import { WebdriverIOConfig } from './WebdriverIOConfig';
6
8
  /**
7
9
  * @package
8
10
  */
9
11
  export declare class WebdriverIONotifier implements StageCrewMember {
12
+ private readonly config;
13
+ private readonly capabilities;
10
14
  private readonly reporter;
11
15
  private readonly successThreshold;
12
16
  private readonly cid;
13
17
  private readonly specs;
14
18
  private failures;
15
19
  private stage?;
20
+ /**
21
+ * We don't have access to the "context" object produced by Mocha,
22
+ * and can't assume that other test runners have a similar concept.
23
+ * Since, at the time of writing, none of the WebdriverIO rely on this parameter
24
+ * using a dummy seems to be sufficient.
25
+ * @private
26
+ */
27
+ private static dummmyContext;
16
28
  private readonly events;
17
29
  private readonly suites;
18
- constructor(reporter: EventEmitter, successThreshold: Outcome | {
30
+ constructor(config: WebdriverIOConfig, capabilities: RemoteCapability, reporter: EventEmitter, successThreshold: Outcome | {
19
31
  Code: number;
20
32
  }, cid: string, specs: string[], failures?: number, stage?: Stage);
21
33
  assignedTo(stage: Stage): StageCrewMember;
22
34
  notifyOf(event: DomainEvent): void;
35
+ private onTestRunFinishes;
23
36
  failureCount(): number;
24
37
  private onTestSuiteStarts;
25
38
  private onTestSuiteFinished;
@@ -29,9 +42,30 @@ export declare class WebdriverIONotifier implements StageCrewMember {
29
42
  private onSceneStarts;
30
43
  private onSceneFinished;
31
44
  private willBeRetried;
45
+ private testShortTitleFrom;
46
+ private testFrom;
32
47
  private testStartEventFrom;
33
48
  private parentSuiteName;
49
+ /**
50
+ * test status is 'passed' | 'pending' | 'skipped' | 'failed' | 'broken' | 'canceled'
51
+ * Since this is not documented, we're mimicking other WebdriverIO reporters, for example:
52
+ * https://github.com/webdriverio/webdriverio/blob/7415f3126e15a733b51721492e4995ceafae6046/packages/wdio-allure-reporter/src/constants.ts#L3-L9
53
+ *
54
+ * @param started
55
+ * @param finished
56
+ * @private
57
+ */
58
+ private testResultFrom;
34
59
  private testEndEventFrom;
60
+ private whenSuccessful;
35
61
  private testResultEventFrom;
36
62
  private errorFrom;
63
+ /**
64
+ * @see https://github.com/webdriverio/webdriverio/blob/main/packages/wdio-utils/src/shim.ts
65
+ * @param hookName
66
+ * @param hookFunctions
67
+ * @param args
68
+ * @private
69
+ */
70
+ private invokeHooks;
37
71
  }