@serenity-js/web 3.0.0-rc.19 → 3.0.0-rc.21

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 (179) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +1 -1
  3. package/lib/errors/BrowserWindowClosedError.d.ts +4 -0
  4. package/lib/errors/BrowserWindowClosedError.js +11 -0
  5. package/lib/errors/BrowserWindowClosedError.js.map +1 -0
  6. package/lib/errors/ModalDialogObstructsScreenshotError.d.ts +4 -0
  7. package/lib/errors/ModalDialogObstructsScreenshotError.js +11 -0
  8. package/lib/errors/ModalDialogObstructsScreenshotError.js.map +1 -0
  9. package/lib/errors/index.d.ts +2 -0
  10. package/lib/errors/index.js +2 -0
  11. package/lib/errors/index.js.map +1 -1
  12. package/lib/expectations/ElementExpectation.d.ts +2 -2
  13. package/lib/expectations/ElementExpectation.js +6 -11
  14. package/lib/expectations/ElementExpectation.js.map +1 -1
  15. package/lib/expectations/isActive.d.ts +1 -1
  16. package/lib/expectations/isActive.js +1 -1
  17. package/lib/expectations/isClickable.d.ts +1 -1
  18. package/lib/expectations/isClickable.js +1 -1
  19. package/lib/expectations/isEnabled.d.ts +1 -1
  20. package/lib/expectations/isEnabled.js +1 -1
  21. package/lib/expectations/isSelected.d.ts +1 -1
  22. package/lib/expectations/isSelected.js +1 -1
  23. package/lib/expectations/isVisible.d.ts +1 -1
  24. package/lib/expectations/isVisible.js +1 -1
  25. package/lib/screenplay/abilities/BrowseTheWeb.d.ts +19 -25
  26. package/lib/screenplay/abilities/BrowseTheWeb.js +25 -10
  27. package/lib/screenplay/abilities/BrowseTheWeb.js.map +1 -1
  28. package/lib/screenplay/abilities/BrowserCapabilities.d.ts +27 -0
  29. package/lib/screenplay/interactions/Clear.d.ts +1 -0
  30. package/lib/screenplay/interactions/Clear.js +15 -6
  31. package/lib/screenplay/interactions/Clear.js.map +1 -1
  32. package/lib/screenplay/interactions/Click.js +1 -1
  33. package/lib/screenplay/interactions/Click.js.map +1 -1
  34. package/lib/screenplay/interactions/DoubleClick.d.ts +2 -2
  35. package/lib/screenplay/interactions/DoubleClick.js +2 -2
  36. package/lib/screenplay/interactions/ExecuteScript.js +9 -7
  37. package/lib/screenplay/interactions/ExecuteScript.js.map +1 -1
  38. package/lib/screenplay/interactions/Hover.d.ts +3 -3
  39. package/lib/screenplay/interactions/Hover.js +5 -5
  40. package/lib/screenplay/interactions/Hover.js.map +1 -1
  41. package/lib/screenplay/interactions/Navigate.js +17 -9
  42. package/lib/screenplay/interactions/Navigate.js.map +1 -1
  43. package/lib/screenplay/interactions/Press.js +5 -3
  44. package/lib/screenplay/interactions/Press.js.map +1 -1
  45. package/lib/screenplay/interactions/Scroll.d.ts +3 -3
  46. package/lib/screenplay/interactions/Scroll.js +5 -6
  47. package/lib/screenplay/interactions/Scroll.js.map +1 -1
  48. package/lib/screenplay/interactions/Select.js +13 -54
  49. package/lib/screenplay/interactions/Select.js.map +1 -1
  50. package/lib/screenplay/interactions/TakeScreenshot.js +2 -1
  51. package/lib/screenplay/interactions/TakeScreenshot.js.map +1 -1
  52. package/lib/screenplay/interactions/index.d.ts +0 -1
  53. package/lib/screenplay/interactions/index.js +0 -1
  54. package/lib/screenplay/interactions/index.js.map +1 -1
  55. package/lib/screenplay/models/BrowsingSession.d.ts +90 -0
  56. package/lib/screenplay/models/BrowsingSession.js +120 -0
  57. package/lib/screenplay/models/BrowsingSession.js.map +1 -0
  58. package/lib/screenplay/models/Cookie.d.ts +12 -0
  59. package/lib/screenplay/models/Cookie.js +19 -4
  60. package/lib/screenplay/models/Cookie.js.map +1 -1
  61. package/lib/screenplay/models/Locator.d.ts +13 -8
  62. package/lib/screenplay/models/Locator.js +13 -7
  63. package/lib/screenplay/models/Locator.js.map +1 -1
  64. package/lib/screenplay/models/Page.d.ts +238 -5
  65. package/lib/screenplay/models/Page.js +46 -3
  66. package/lib/screenplay/models/Page.js.map +1 -1
  67. package/lib/screenplay/models/PageElement.d.ts +3 -0
  68. package/lib/screenplay/models/PageElement.js +2 -1
  69. package/lib/screenplay/models/PageElement.js.map +1 -1
  70. package/lib/screenplay/models/PageElements.d.ts +3 -3
  71. package/lib/screenplay/models/PageElements.js +4 -3
  72. package/lib/screenplay/models/PageElements.js.map +1 -1
  73. package/lib/screenplay/models/RootLocator.d.ts +7 -0
  74. package/lib/screenplay/models/RootLocator.js +10 -0
  75. package/lib/screenplay/models/RootLocator.js.map +1 -0
  76. package/lib/screenplay/models/SelectOption.d.ts +11 -0
  77. package/lib/screenplay/models/SelectOption.js +24 -0
  78. package/lib/screenplay/models/SelectOption.js.map +1 -0
  79. package/lib/screenplay/models/dialogs/AbsentModalDialog.d.ts +5 -0
  80. package/lib/screenplay/models/dialogs/AbsentModalDialog.js +15 -0
  81. package/lib/screenplay/models/dialogs/AbsentModalDialog.js.map +1 -0
  82. package/lib/screenplay/models/dialogs/AcceptedModalDialog.d.ts +7 -0
  83. package/lib/screenplay/models/dialogs/AcceptedModalDialog.js +20 -0
  84. package/lib/screenplay/models/dialogs/AcceptedModalDialog.js.map +1 -0
  85. package/lib/screenplay/models/dialogs/DismissedModalDialog.d.ts +7 -0
  86. package/lib/screenplay/models/dialogs/DismissedModalDialog.js +20 -0
  87. package/lib/screenplay/models/dialogs/DismissedModalDialog.js.map +1 -0
  88. package/lib/screenplay/models/dialogs/ModalDialog.d.ts +151 -0
  89. package/lib/screenplay/models/dialogs/ModalDialog.js +154 -0
  90. package/lib/screenplay/models/dialogs/ModalDialog.js.map +1 -0
  91. package/lib/screenplay/models/dialogs/ModalDialogHandler.d.ts +46 -0
  92. package/lib/screenplay/models/dialogs/ModalDialogHandler.js +27 -0
  93. package/lib/screenplay/models/dialogs/ModalDialogHandler.js.map +1 -0
  94. package/lib/screenplay/models/dialogs/index.d.ts +5 -0
  95. package/lib/screenplay/models/dialogs/index.js +22 -0
  96. package/lib/screenplay/models/dialogs/index.js.map +1 -0
  97. package/lib/screenplay/models/index.d.ts +4 -1
  98. package/lib/screenplay/models/index.js +4 -1
  99. package/lib/screenplay/models/index.js.map +1 -1
  100. package/lib/screenplay/models/selectors/By.d.ts +1 -0
  101. package/lib/screenplay/models/selectors/By.js +7 -0
  102. package/lib/screenplay/models/selectors/By.js.map +1 -1
  103. package/lib/screenplay/models/selectors/ByDeepCss.d.ts +5 -0
  104. package/lib/screenplay/models/selectors/ByDeepCss.js +12 -0
  105. package/lib/screenplay/models/selectors/ByDeepCss.js.map +1 -0
  106. package/lib/screenplay/models/selectors/index.d.ts +1 -0
  107. package/lib/screenplay/models/selectors/index.js +1 -0
  108. package/lib/screenplay/models/selectors/index.js.map +1 -1
  109. package/lib/screenplay/questions/LastScriptExecution.js +4 -1
  110. package/lib/screenplay/questions/LastScriptExecution.js.map +1 -1
  111. package/lib/screenplay/questions/Selected.d.ts +5 -5
  112. package/lib/screenplay/questions/Selected.js +29 -20
  113. package/lib/screenplay/questions/Selected.js.map +1 -1
  114. package/lib/scripts/index.d.ts +1 -0
  115. package/lib/scripts/index.js +18 -0
  116. package/lib/scripts/index.js.map +1 -0
  117. package/lib/scripts/isVisible.d.ts +1 -0
  118. package/lib/scripts/isVisible.js +96 -0
  119. package/lib/scripts/isVisible.js.map +1 -0
  120. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +5 -16
  121. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +1 -1
  122. package/package.json +8 -8
  123. package/src/errors/BrowserWindowClosedError.ts +7 -0
  124. package/src/errors/ModalDialogObstructsScreenshotError.ts +7 -0
  125. package/src/errors/index.ts +2 -0
  126. package/src/expectations/ElementExpectation.ts +6 -10
  127. package/src/expectations/isActive.ts +1 -1
  128. package/src/expectations/isClickable.ts +1 -1
  129. package/src/expectations/isEnabled.ts +1 -1
  130. package/src/expectations/isSelected.ts +1 -1
  131. package/src/expectations/isVisible.ts +1 -1
  132. package/src/screenplay/abilities/BrowseTheWeb.ts +23 -53
  133. package/src/screenplay/abilities/BrowserCapabilities.ts +30 -0
  134. package/src/screenplay/interactions/Clear.ts +21 -8
  135. package/src/screenplay/interactions/Click.ts +1 -1
  136. package/src/screenplay/interactions/DoubleClick.ts +2 -2
  137. package/src/screenplay/interactions/ExecuteScript.ts +36 -33
  138. package/src/screenplay/interactions/Hover.ts +4 -4
  139. package/src/screenplay/interactions/Navigate.ts +22 -18
  140. package/src/screenplay/interactions/Press.ts +6 -4
  141. package/src/screenplay/interactions/Scroll.ts +5 -6
  142. package/src/screenplay/interactions/Select.ts +20 -73
  143. package/src/screenplay/interactions/TakeScreenshot.ts +2 -1
  144. package/src/screenplay/interactions/index.ts +0 -1
  145. package/src/screenplay/models/BrowsingSession.ts +137 -0
  146. package/src/screenplay/models/Cookie.ts +21 -5
  147. package/src/screenplay/models/Locator.ts +26 -9
  148. package/src/screenplay/models/Page.ts +277 -5
  149. package/src/screenplay/models/PageElement.ts +7 -2
  150. package/src/screenplay/models/PageElements.ts +6 -5
  151. package/src/screenplay/models/RootLocator.ts +11 -0
  152. package/src/screenplay/models/SelectOption.ts +25 -0
  153. package/src/screenplay/models/dialogs/AbsentModalDialog.ts +13 -0
  154. package/src/screenplay/models/dialogs/AcceptedModalDialog.ts +18 -0
  155. package/src/screenplay/models/dialogs/DismissedModalDialog.ts +18 -0
  156. package/src/screenplay/models/dialogs/ModalDialog.ts +184 -0
  157. package/src/screenplay/models/dialogs/ModalDialogHandler.ts +59 -0
  158. package/src/screenplay/models/dialogs/index.ts +5 -0
  159. package/src/screenplay/models/index.ts +4 -1
  160. package/src/screenplay/models/selectors/By.ts +8 -0
  161. package/src/screenplay/models/selectors/ByDeepCss.ts +7 -0
  162. package/src/screenplay/models/selectors/index.ts +1 -0
  163. package/src/screenplay/questions/LastScriptExecution.ts +4 -2
  164. package/src/screenplay/questions/Selected.ts +41 -25
  165. package/src/scripts/index.ts +1 -0
  166. package/src/scripts/isVisible.ts +113 -0
  167. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +5 -24
  168. package/lib/screenplay/interactions/Wait.d.ts +0 -143
  169. package/lib/screenplay/interactions/Wait.js +0 -238
  170. package/lib/screenplay/interactions/Wait.js.map +0 -1
  171. package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -32
  172. package/lib/screenplay/interactions/WaitBuilder.js +0 -3
  173. package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
  174. package/lib/screenplay/models/ModalDialog.d.ts +0 -9
  175. package/lib/screenplay/models/ModalDialog.js +0 -14
  176. package/lib/screenplay/models/ModalDialog.js.map +0 -1
  177. package/src/screenplay/interactions/Wait.ts +0 -260
  178. package/src/screenplay/interactions/WaitBuilder.ts +0 -34
  179. package/src/screenplay/models/ModalDialog.ts +0 -19
package/CHANGELOG.md CHANGED
@@ -3,6 +3,40 @@
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.21](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.20...v3.0.0-rc.21) (2022-07-11)
7
+
8
+ **Note:** Version bump only for package @serenity-js/web
9
+
10
+
11
+
12
+
13
+
14
+ # [3.0.0-rc.20](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.19...v3.0.0-rc.20) (2022-07-11)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **protractor:** isVisible check for ProtractorPageElement returns false for non-existent elements ([e64eee3](https://github.com/serenity-js/serenity-js/commit/e64eee377af32909f25e7c1d88f45a484abb1514)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
20
+ * **web:** improved JavaScript dialog-related error handling when taking screenshots ([3cd1149](https://github.com/serenity-js/serenity-js/commit/3cd1149ed74df95da17f1054cd4da93b095a4eed)), closes [puppeteer/puppeteer#2481](https://github.com/puppeteer/puppeteer/issues/2481) [#1156](https://github.com/serenity-js/serenity-js/issues/1156)
21
+ * **web:** renamed PagesContext to BrowsingSession to make the name more descriptive ([6b4e998](https://github.com/serenity-js/serenity-js/commit/6b4e9984d80f8f349f367e59bd0e615cd01703ec)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
22
+
23
+
24
+ ### Features
25
+
26
+ * **core:** interactions to Wait.for and Wait.until are now browser-independent ([d115142](https://github.com/serenity-js/serenity-js/commit/d1151427bed96c1ebd0d1dcc4159c6aeedc605de)), closes [#1035](https://github.com/serenity-js/serenity-js/issues/1035) [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
27
+ * **playwright:** configurable navigation waitUntil timeout ([2458fcb](https://github.com/serenity-js/serenity-js/commit/2458fcb22c946da41ab59cb21ac0d4cc48012da7)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
28
+ * **playwright:** initial support for Playwright ([87e88a1](https://github.com/serenity-js/serenity-js/commit/87e88a16cdc06477ed25eb83f9597fd370fdc109)), closes [#493](https://github.com/serenity-js/serenity-js/issues/493) [#563](https://github.com/serenity-js/serenity-js/issues/563) [#911](https://github.com/serenity-js/serenity-js/issues/911)
29
+ * **playwright:** interaction to Select option(s) from a <select /> dropdown ([009041d](https://github.com/serenity-js/serenity-js/commit/009041d83e22ddf3fef14670e0e5fd6d11cdfc73)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
30
+ * **playwright:** support for isVisible, plus consistent visibility checks across the board ([2c5c929](https://github.com/serenity-js/serenity-js/commit/2c5c929802f894f9fe59438a01f08b1b7bec3318)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
31
+ * **playwright:** support for working with frames ([89d4621](https://github.com/serenity-js/serenity-js/commit/89d46212073a342fe812a3ad2638a2ad0c39b620)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
32
+ * **web:** introduced PagesContext and implemented PlaywrightPage ([0045a72](https://github.com/serenity-js/serenity-js/commit/0045a726d540871333f644928218aed00bcd372c)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236)
33
+ * **web:** new portable APIs to handle ModalDialog windows ([c94d0ec](https://github.com/serenity-js/serenity-js/commit/c94d0ec43d2bc8aa39f8824f5d0f1e1cbcf137a1)), closes [#1236](https://github.com/serenity-js/serenity-js/issues/1236) [#805](https://github.com/serenity-js/serenity-js/issues/805) [#1156](https://github.com/serenity-js/serenity-js/issues/1156)
34
+ * **web:** standardised support for deep CSS selectors across the Web integration modules ([e9e3f28](https://github.com/serenity-js/serenity-js/commit/e9e3f281191fc5c891841b6c8aab41213da3b0f5)), closes [#1238](https://github.com/serenity-js/serenity-js/issues/1238)
35
+
36
+
37
+
38
+
39
+
6
40
  # [3.0.0-rc.19](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.18...v3.0.0-rc.19) (2022-06-11)
7
41
 
8
42
  **Note:** Version bump only for package @serenity-js/web
package/README.md CHANGED
@@ -8,7 +8,7 @@ and [API docs](https://serenity-js.org/modules/), and follow [@SerenityJS](https
8
8
 
9
9
  ### Learning Serenity/JS
10
10
 
11
- To learn more about Serenity/JS, check out the video below, read the [tutorial](https://serenity-js.org/handbook/thinking-in-serenity-js/index.html), review the [examples](https://github.com/serenity-js/serenity-js/tree/master/examples), and create your own test suite with [Serenity/JS template projects](https://github.com/serenity-js).
11
+ To learn more about Serenity/JS, check out the video below, read the [tutorial](https://serenity-js.org/handbook/thinking-in-serenity-js/index.html), review the [examples](https://github.com/serenity-js/serenity-js/tree/main/examples), and create your own test suite with [Serenity/JS template projects](https://github.com/serenity-js).
12
12
 
13
13
  If you have any questions, join us on [Serenity/JS Community Chat](https://gitter.im/serenity-js/Lobby).
14
14
 
@@ -0,0 +1,4 @@
1
+ import { LogicError } from '@serenity-js/core';
2
+ export declare class BrowserWindowClosedError extends LogicError {
3
+ constructor(message: string, cause?: Error);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserWindowClosedError = void 0;
4
+ const core_1 = require("@serenity-js/core");
5
+ class BrowserWindowClosedError extends core_1.LogicError {
6
+ constructor(message, cause) {
7
+ super(message, cause);
8
+ }
9
+ }
10
+ exports.BrowserWindowClosedError = BrowserWindowClosedError;
11
+ //# sourceMappingURL=BrowserWindowClosedError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserWindowClosedError.js","sourceRoot":"","sources":["../../src/errors/BrowserWindowClosedError.ts"],"names":[],"mappings":";;;AAAA,4CAA+C;AAE/C,MAAa,wBAAyB,SAAQ,iBAAU;IACpD,YAAY,OAAe,EAAE,KAAa;QACtC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;CACJ;AAJD,4DAIC"}
@@ -0,0 +1,4 @@
1
+ import { LogicError } from '@serenity-js/core';
2
+ export declare class ModalDialogObstructsScreenshotError extends LogicError {
3
+ constructor(message: string, cause?: Error);
4
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModalDialogObstructsScreenshotError = void 0;
4
+ const core_1 = require("@serenity-js/core");
5
+ class ModalDialogObstructsScreenshotError extends core_1.LogicError {
6
+ constructor(message, cause) {
7
+ super(message, cause);
8
+ }
9
+ }
10
+ exports.ModalDialogObstructsScreenshotError = ModalDialogObstructsScreenshotError;
11
+ //# sourceMappingURL=ModalDialogObstructsScreenshotError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalDialogObstructsScreenshotError.js","sourceRoot":"","sources":["../../src/errors/ModalDialogObstructsScreenshotError.ts"],"names":[],"mappings":";;;AAAA,4CAA+C;AAE/C,MAAa,mCAAoC,SAAQ,iBAAU;IAC/D,YAAY,OAAe,EAAE,KAAa;QACtC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;CACJ;AAJD,kFAIC"}
@@ -1 +1,3 @@
1
+ export * from './BrowserWindowClosedError';
1
2
  export * from './CookieMissingError';
3
+ export * from './ModalDialogObstructsScreenshotError';
@@ -14,5 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./BrowserWindowClosedError"), exports);
17
18
  __exportStar(require("./CookieMissingError"), exports);
19
+ __exportStar(require("./ModalDialogObstructsScreenshotError"), exports);
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,uDAAqC;AACrC,wEAAsD"}
@@ -25,8 +25,8 @@ import { PageElement } from '../screenplay';
25
25
  * );
26
26
  *
27
27
  * @example <caption>Using an expectation in a synchronisation statement</caption>
28
- * import { actorCalled, Duration } from '@serenity-js/core';
29
- * import { By, PageElement, Wait } from '@serenity-js/web';
28
+ * import { actorCalled, Duration, Wait } from '@serenity-js/core';
29
+ * import { By, PageElement } from '@serenity-js/web';
30
30
  *
31
31
  * const submitButton = () =>
32
32
  * PageElement.located(By.css('.submit')).describedAs('submit button');
@@ -27,8 +27,8 @@ const core_1 = require("@serenity-js/core");
27
27
  * );
28
28
  *
29
29
  * @example <caption>Using an expectation in a synchronisation statement</caption>
30
- * import { actorCalled, Duration } from '@serenity-js/core';
31
- * import { By, PageElement, Wait } from '@serenity-js/web';
30
+ * import { actorCalled, Duration, Wait } from '@serenity-js/core';
31
+ * import { By, PageElement } from '@serenity-js/web';
32
32
  *
33
33
  * const submitButton = () =>
34
34
  * PageElement.located(By.css('.submit')).describedAs('submit button');
@@ -48,15 +48,10 @@ class ElementExpectation extends core_1.Expectation {
48
48
  constructor(description, fn) {
49
49
  super(description, async (actor, actual) => {
50
50
  const pageElement = await actor.answer(actual);
51
- try {
52
- const result = await fn(pageElement);
53
- return result
54
- ? new core_1.ExpectationMet(this.toString(), undefined, pageElement)
55
- : new core_1.ExpectationNotMet(this.toString(), undefined, pageElement);
56
- }
57
- catch (error) {
58
- return new core_1.ExpectationNotMet(`${description} (${error.message})`, undefined, pageElement);
59
- }
51
+ const result = await fn(pageElement);
52
+ return result
53
+ ? new core_1.ExpectationMet(this.toString(), undefined, pageElement)
54
+ : new core_1.ExpectationNotMet(this.toString(), undefined, pageElement);
60
55
  });
61
56
  this.fn = fn;
62
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ElementExpectation.js","sourceRoot":"","sources":["../../src/expectations/ElementExpectation.ts"],"names":[],"mappings":";;;AAAA,4CAAiH;AAIjH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAa,kBAAmB,SAAQ,kBAAwB;IAwC5D;;;OAGG;IACH,YACI,WAAmB,EACF,EAA6C;QAE9D,KAAK,CACD,WAAW,EACX,KAAK,EAAE,KAAuB,EAAE,MAA+B,EAAE,EAAE;YAC/D,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE/C,IAAI;gBACA,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;gBAErC,OAAO,MAAM;oBACT,CAAC,CAAC,IAAI,qBAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC;oBAC7D,CAAC,CAAC,IAAI,wBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;aACxE;YAAC,OAAM,KAAK,EAAE;gBACX,OAAO,IAAI,wBAAiB,CAAC,GAAI,WAAY,KAAM,KAAK,CAAC,OAAQ,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;aACjG;QACL,CAAC,CACJ,CAAC;QAjBe,OAAE,GAAF,EAAE,CAA2C;IAkBlE,CAAC;IA9DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,MAAM,CAAC,YAAY,CAAC,WAAmB,EAAE,EAA6C;QAClF,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;CA2BJ;AAjED,gDAiEC"}
1
+ {"version":3,"file":"ElementExpectation.js","sourceRoot":"","sources":["../../src/expectations/ElementExpectation.ts"],"names":[],"mappings":";;;AAAA,4CAAiH;AAIjH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAa,kBAAmB,SAAQ,kBAAwB;IAwC5D;;;OAGG;IACH,YACI,WAAmB,EACF,EAA6C;QAE9D,KAAK,CACD,WAAW,EACX,KAAK,EAAE,KAAuB,EAAE,MAA+B,EAAE,EAAE;YAC/D,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAE/C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;YAErC,OAAO,MAAM;gBACT,CAAC,CAAC,IAAI,qBAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC;gBAC7D,CAAC,CAAC,IAAI,wBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACzE,CAAC,CACJ,CAAC;QAbe,OAAE,GAAF,EAAE,CAA2C;IAclE,CAAC;IA1DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,MAAM,CAAC,YAAY,CAAC,WAAmB,EAAE,EAA6C;QAClF,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;CAuBJ;AA7DD,gDA6DC"}
@@ -10,6 +10,6 @@ import { PageElement } from '../screenplay';
10
10
  * @see https://webdriver.io/docs/api/element/isFocused/
11
11
  * @see {@link @serenity-js/assertions~Ensure}
12
12
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
13
- * @see {@link Wait}
13
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
14
14
  */
15
15
  export declare function isActive(): Expectation<PageElement>;
@@ -12,7 +12,7 @@ const ElementExpectation_1 = require("./ElementExpectation");
12
12
  * @see https://webdriver.io/docs/api/element/isFocused/
13
13
  * @see {@link @serenity-js/assertions~Ensure}
14
14
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
15
- * @see {@link Wait}
15
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
16
16
  */
17
17
  // todo: isFocused?
18
18
  function isActive() {
@@ -15,6 +15,6 @@ import { PageElement } from '../screenplay';
15
15
  * @see https://webdriver.io/docs/api/element/isClickable/
16
16
  * @see {@link @serenity-js/assertions~Ensure}
17
17
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
18
- * @see {@link Wait}
18
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
19
19
  */
20
20
  export declare function isClickable(): Expectation<PageElement>;
@@ -21,7 +21,7 @@ const isVisible_1 = require("./isVisible");
21
21
  * @see https://webdriver.io/docs/api/element/isClickable/
22
22
  * @see {@link @serenity-js/assertions~Ensure}
23
23
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
24
- * @see {@link Wait}
24
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
25
25
  */
26
26
  function isClickable() {
27
27
  return core_1.Expectation.to('become clickable').soThatActual((0, assertions_1.and)((0, isVisible_1.isVisible)(), (0, isEnabled_1.isEnabled)(), ElementExpectation_1.ElementExpectation.forElementTo('become clickable', actual => actual.isClickable())));
@@ -9,6 +9,6 @@ import { PageElement } from '../screenplay';
9
9
  * @see https://webdriver.io/docs/api/element/isEnabled/
10
10
  * @see {@link @serenity-js/assertions~Ensure}
11
11
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
12
- * @see {@link Wait}
12
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
13
13
  */
14
14
  export declare function isEnabled(): Expectation<PageElement>;
@@ -11,7 +11,7 @@ const ElementExpectation_1 = require("./ElementExpectation");
11
11
  * @see https://webdriver.io/docs/api/element/isEnabled/
12
12
  * @see {@link @serenity-js/assertions~Ensure}
13
13
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
14
- * @see {@link Wait}
14
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
15
15
  */
16
16
  function isEnabled() {
17
17
  return ElementExpectation_1.ElementExpectation.forElementTo('become enabled', actual => actual.isEnabled());
@@ -9,6 +9,6 @@ import { PageElement } from '../screenplay';
9
9
  * @see https://webdriver.io/docs/api/element/isSelected/
10
10
  * @see {@link @serenity-js/assertions~Ensure}
11
11
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
12
- * @see {@link Wait}
12
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
13
13
  */
14
14
  export declare function isSelected(): Expectation<PageElement>;
@@ -13,7 +13,7 @@ const ElementExpectation_1 = require("./ElementExpectation");
13
13
  * @see https://webdriver.io/docs/api/element/isSelected/
14
14
  * @see {@link @serenity-js/assertions~Ensure}
15
15
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
16
- * @see {@link Wait}
16
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
17
17
  */
18
18
  function isSelected() {
19
19
  return core_1.Expectation.to('become selected').soThatActual((0, assertions_1.and)((0, assertions_1.isPresent)(), ElementExpectation_1.ElementExpectation.forElementTo('become selected', actual => actual.isSelected())));
@@ -12,6 +12,6 @@ import { PageElement } from '../screenplay';
12
12
  * @see https://webdriver.io/docs/api/element/isDisplayed/
13
13
  * @see {@link @serenity-js/assertions~Ensure}
14
14
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
15
- * @see {@link Wait}
15
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
16
16
  */
17
17
  export declare function isVisible(): Expectation<PageElement>;
@@ -14,7 +14,7 @@ const ElementExpectation_1 = require("./ElementExpectation");
14
14
  * @see https://webdriver.io/docs/api/element/isDisplayed/
15
15
  * @see {@link @serenity-js/assertions~Ensure}
16
16
  * @see {@link @serenity-js/core/lib/screenplay/questions~Check}
17
- * @see {@link Wait}
17
+ * @see {@link @serenity-js/core/lib/screenplay/interactions~Wait}
18
18
  */
19
19
  function isVisible() {
20
20
  return ElementExpectation_1.ElementExpectation.forElementTo('become visible', actual => actual.isVisible());
@@ -1,9 +1,8 @@
1
- import { Ability, Duration, UsesAbilities } from '@serenity-js/core';
2
- import { Key } from '../../input';
3
- import { Cookie, CookieData, Locator, ModalDialog, Page, Selector } from '../models';
1
+ import { Ability, UsesAbilities } from '@serenity-js/core';
2
+ import { BrowsingSession, Page } from '../models';
4
3
  import { BrowserCapabilities } from './BrowserCapabilities';
5
- export declare abstract class BrowseTheWeb<Native_Element_Type = any, Native_Root_Element_Type = unknown> implements Ability {
6
- protected locators: Map<new (...args: unknown[]) => Selector, (selector: Selector) => Locator<Native_Element_Type, Native_Root_Element_Type>>;
4
+ export declare abstract class BrowseTheWeb<Native_Element_Type = any> implements Ability {
5
+ protected readonly session: BrowsingSession<Page<Native_Element_Type>>;
7
6
  /**
8
7
  * @desc
9
8
  * Used to access the Actor's ability to {@link BrowseTheWeb}
@@ -13,28 +12,27 @@ export declare abstract class BrowseTheWeb<Native_Element_Type = any, Native_Roo
13
12
  * @param {@serenity-js/core/lib/screenplay/actor~UsesAbilities} actor
14
13
  * @return {BrowseTheWeb}
15
14
  */
16
- static as<NET = any, NRET = unknown>(actor: UsesAbilities): BrowseTheWeb<NET, NRET>;
17
- protected constructor(locators: Map<new (...args: unknown[]) => Selector, (selector: Selector) => Locator<Native_Element_Type, Native_Root_Element_Type>>);
18
- abstract navigateTo(destination: string): Promise<void>;
19
- abstract navigateBack(): Promise<void>;
20
- abstract navigateForward(): Promise<void>;
21
- abstract reloadPage(): Promise<void>;
22
- abstract waitFor(duration: Duration): Promise<void>;
23
- abstract waitUntil(condition: () => boolean | Promise<boolean>, timeout: Duration): Promise<void>;
24
- locate(selector: Selector): Locator<Native_Element_Type, Native_Root_Element_Type>;
15
+ static as<NET = any>(actor: UsesAbilities): BrowseTheWeb<NET>;
16
+ /**
17
+ * @param {BrowsingSession<Page>} session
18
+ *
19
+ * @protected
20
+ */
21
+ protected constructor(session: BrowsingSession<Page<Native_Element_Type>>);
22
+ /**
23
+ * @desc
24
+ * Returns basic meta-data about the browser associated with this ability.
25
+ *
26
+ * @returns {Promise<BrowserCapabilities>}
27
+ */
25
28
  abstract browserCapabilities(): Promise<BrowserCapabilities>;
26
- abstract sendKeys(keys: Array<Key | string>): Promise<void>;
27
- abstract executeScript<Result, InnerArguments extends any[]>(script: string | ((...parameters: InnerArguments) => Result), ...args: InnerArguments): Promise<Result>;
28
- abstract executeAsyncScript<Result, Parameters extends any[]>(script: string | ((...args: [...parameters: Parameters, callback: (result: Result) => void]) => void), ...args: Parameters): Promise<Result>;
29
- abstract lastScriptExecutionResult<R = any>(): R;
30
- abstract takeScreenshot(): Promise<string>;
31
29
  /**
32
30
  * @desc
33
31
  * Returns a {@link Page} representing the currently active top-level browsing context.
34
32
  *
35
33
  * @returns {Promise<Page>}
36
34
  */
37
- abstract currentPage(): Promise<Page>;
35
+ currentPage(): Promise<Page<Native_Element_Type>>;
38
36
  /**
39
37
  * @desc
40
38
  * Returns an array of {@link Page} objects representing all the available
@@ -42,9 +40,5 @@ export declare abstract class BrowseTheWeb<Native_Element_Type = any, Native_Roo
42
40
  *
43
41
  * @returns {Promise<Array<Page>>}
44
42
  */
45
- abstract allPages(): Promise<Array<Page>>;
46
- abstract cookie(name: string): Promise<Cookie>;
47
- abstract setCookie(cookieData: CookieData): Promise<void>;
48
- abstract deleteAllCookies(): Promise<void>;
49
- abstract modalDialog(): Promise<ModalDialog>;
43
+ allPages(): Promise<Array<Page<Native_Element_Type>>>;
50
44
  }
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BrowseTheWeb = void 0;
4
- const core_1 = require("@serenity-js/core");
5
4
  class BrowseTheWeb {
6
- constructor(locators) {
7
- this.locators = locators;
5
+ /**
6
+ * @param {BrowsingSession<Page>} session
7
+ *
8
+ * @protected
9
+ */
10
+ constructor(session) {
11
+ this.session = session;
8
12
  }
9
13
  /**
10
14
  * @desc
@@ -18,13 +22,24 @@ class BrowseTheWeb {
18
22
  static as(actor) {
19
23
  return actor.abilityTo(BrowseTheWeb);
20
24
  }
21
- locate(selector) {
22
- for (const [type, locatorFactory] of this.locators) {
23
- if (selector instanceof type) {
24
- return locatorFactory(selector);
25
- }
26
- }
27
- throw new core_1.LogicError((0, core_1.f) `${selector} is not supported by ${this.constructor.name}`);
25
+ /**
26
+ * @desc
27
+ * Returns a {@link Page} representing the currently active top-level browsing context.
28
+ *
29
+ * @returns {Promise<Page>}
30
+ */
31
+ async currentPage() {
32
+ return this.session.currentPage();
33
+ }
34
+ /**
35
+ * @desc
36
+ * Returns an array of {@link Page} objects representing all the available
37
+ * top-level browsing context, e.g. all the open browser tabs.
38
+ *
39
+ * @returns {Promise<Array<Page>>}
40
+ */
41
+ allPages() {
42
+ return this.session.allPages();
28
43
  }
29
44
  }
30
45
  exports.BrowseTheWeb = BrowseTheWeb;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowseTheWeb.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/BrowseTheWeb.ts"],"names":[],"mappings":";;;AAAA,4CAAoF;AAMpF,MAAsB,YAAY;IAe9B,YACc,QAAmI;QAAnI,aAAQ,GAAR,QAAQ,CAA2H;IAEjJ,CAAC;IAhBD;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,CAA4B,KAAoB;QACrD,OAAO,KAAK,CAAC,SAAS,CAAC,YAAY,CAA4B,CAAC;IACpE,CAAC;IAgBD,MAAM,CAAC,QAAkB;QACrB,KAAK,MAAM,CAAE,IAAI,EAAE,cAAc,CAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClD,IAAI,QAAQ,YAAY,IAAI,EAAE;gBAC1B,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;aACnC;SACJ;QAED,MAAM,IAAI,iBAAU,CAAC,IAAA,QAAC,EAAC,GAAI,QAAS,wBAAyB,IAAI,CAAC,WAAW,CAAC,IAAK,EAAE,CAAC,CAAC;IAC3F,CAAC;CA0CJ;AA/ED,oCA+EC"}
1
+ {"version":3,"file":"BrowseTheWeb.js","sourceRoot":"","sources":["../../../src/screenplay/abilities/BrowseTheWeb.ts"],"names":[],"mappings":";;;AAKA,MAAsB,YAAY;IAe9B;;;;OAIG;IACH,YAAyC,OAAmD;QAAnD,YAAO,GAAP,OAAO,CAA4C;IAC5F,CAAC;IAnBD;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,CAAY,KAAoB;QACrC,OAAO,KAAK,CAAC,SAAS,CAAC,YAAY,CAAsB,CAAC;IAC9D,CAAC;IAkBD;;;;;OAKG;IACH,KAAK,CAAC,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;CACJ;AAnDD,oCAmDC"}
@@ -1,5 +1,32 @@
1
+ /**
2
+ * @desc
3
+ * Basic meta-data about the browser used in the test.
4
+ *
5
+ * @public
6
+ */
1
7
  export interface BrowserCapabilities {
8
+ /**
9
+ * @desc
10
+ * Name of the operating system platform the test is executed on, like `darwin`, `linux` or `windows`.
11
+ *
12
+ * @type {string | undefined}
13
+ * @public
14
+ */
2
15
  platformName?: string;
16
+ /**
17
+ * @desc
18
+ * Name of the Web browser the test is executed in, like `chrome`, `firefox` or `safari`.
19
+ *
20
+ * @type {string | undefined}
21
+ * @public
22
+ */
3
23
  browserName?: string;
24
+ /**
25
+ * @desc
26
+ * Version number of the browser the test is executed in.
27
+ *
28
+ * @type {string | undefined}
29
+ * @public
30
+ */
4
31
  browserVersion?: string;
5
32
  }
@@ -75,5 +75,6 @@ export declare class Clear extends PageElementInteraction {
75
75
  * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
76
76
  */
77
77
  performAs(actor: UsesAbilities & AnswersQuestions): Promise<void>;
78
+ private ensureElementCanBeCleared;
78
79
  private capitaliseFirstLetter;
79
80
  }
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Clear = void 0;
4
4
  const core_1 = require("@serenity-js/core");
5
- const io_1 = require("@serenity-js/core/lib/io");
6
5
  const PageElementInteraction_1 = require("./PageElementInteraction");
7
6
  /**
8
7
  * @desc
@@ -52,7 +51,7 @@ class Clear extends PageElementInteraction_1.PageElementInteraction {
52
51
  * The element to be clicked on
53
52
  */
54
53
  constructor(field) {
55
- super((0, io_1.formatted) `#actor clears the value of ${field}`);
54
+ super((0, core_1.d) `#actor clears the value of ${field}`);
56
55
  this.field = field;
57
56
  }
58
57
  /**
@@ -83,12 +82,22 @@ class Clear extends PageElementInteraction_1.PageElementInteraction {
83
82
  */
84
83
  async performAs(actor) {
85
84
  const element = await this.resolve(actor, this.field);
86
- const value = await element.value();
87
- if (value === null || value === undefined) {
88
- throw new core_1.LogicError(this.capitaliseFirstLetter((0, io_1.formatted) `${this.field} doesn't seem to have a 'value' attribute that could be cleared.`));
89
- }
85
+ await this.ensureElementCanBeCleared(element);
90
86
  return element.clearValue();
91
87
  }
88
+ async ensureElementCanBeCleared(element) {
89
+ let threwError, hasValueAttribute = false;
90
+ try {
91
+ const value = await element.value();
92
+ hasValueAttribute = value !== null && value !== undefined;
93
+ }
94
+ catch (error) {
95
+ threwError = error;
96
+ }
97
+ if (!hasValueAttribute || threwError) {
98
+ throw new core_1.LogicError(this.capitaliseFirstLetter((0, core_1.d) `${this.field} doesn't seem to have a 'value' attribute that could be cleared.`), threwError);
99
+ }
100
+ }
92
101
  capitaliseFirstLetter(text) {
93
102
  return text.charAt(0).toUpperCase() + text.slice(1);
94
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Clear.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Clear.ts"],"names":[],"mappings":";;;AAAA,4CAAyG;AACzG,iDAAqD;AAGrD,qEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAa,KAAM,SAAQ,+CAAsB;IAe7C;;;OAGG;IACH,YAA6B,KAA8B;QACvD,KAAK,CAAC,IAAA,cAAS,EAAC,8BAA+B,KAAM,EAAE,CAAC,CAAC;QADhC,UAAK,GAAL,KAAK,CAAyB;IAE3D,CAAC;IAnBD;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,CAAC,KAA8B;QAC5C,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAUD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,OAAO,GAAK,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,KAAK,GAAO,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAExC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACvC,MAAM,IAAI,iBAAU,CAChB,IAAI,CAAC,qBAAqB,CAAC,IAAA,cAAS,EAAC,GAAI,IAAI,CAAC,KAAM,kEAAkE,CAAC,CAC1H,CAAC;SACL;QAED,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAEO,qBAAqB,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;CACJ;AArDD,sBAqDC"}
1
+ {"version":3,"file":"Clear.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Clear.ts"],"names":[],"mappings":";;;AAAA,4CAA4G;AAG5G,qEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAa,KAAM,SAAQ,+CAAsB;IAe7C;;;OAGG;IACH,YAA6B,KAA8B;QACvD,KAAK,CAAC,IAAA,QAAC,EAAA,8BAA+B,KAAM,EAAE,CAAC,CAAC;QADvB,UAAK,GAAL,KAAK,CAAyB;IAE3D,CAAC;IAnBD;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,CAAC,KAA8B;QAC5C,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAUD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,OAAO,GAAK,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAE9C,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,OAAoB;QACxD,IAAI,UAAiB,EACjB,iBAAiB,GAAG,KAAK,CAAC;QAE9B,IAAI;YACA,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,iBAAiB,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;SAC7D;QAAC,OAAO,KAAK,EAAE;YACZ,UAAU,GAAG,KAAK,CAAC;SACtB;QAED,IAAI,CAAE,iBAAiB,IAAI,UAAU,EAAE;YACnC,MAAM,IAAI,iBAAU,CAChB,IAAI,CAAC,qBAAqB,CAAC,IAAA,QAAC,EAAA,GAAI,IAAI,CAAC,KAAM,kEAAkE,CAAC,EAC9G,UAAU,CACb,CAAC;SACL;IACL,CAAC;IAEO,qBAAqB,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;CACJ;AAnED,sBAmEC"}
@@ -78,7 +78,7 @@ class Click extends PageElementInteraction_1.PageElementInteraction {
78
78
  async performAs(actor) {
79
79
  const element = await this.resolve(actor, this.element);
80
80
  await element.scrollIntoView();
81
- return element.click();
81
+ await element.click();
82
82
  }
83
83
  }
84
84
  exports.Click = Click;
@@ -1 +1 @@
1
- {"version":3,"file":"Click.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Click.ts"],"names":[],"mappings":";;;AACA,iDAAqD;AAGrD,qEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAa,KAAM,SAAQ,+CAAsB;IAe7C;;;OAGG;IACH,YAA6B,OAAgC;QACzD,KAAK,CAAC,IAAA,cAAS,EAAC,oBAAqB,OAAQ,EAAE,CAAC,CAAC;QADxB,YAAO,GAAP,OAAO,CAAyB;IAE7D,CAAC;IAnBD;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,CAAC,WAAoC;QAC1C,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAUD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACJ;AA1CD,sBA0CC"}
1
+ {"version":3,"file":"Click.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Click.ts"],"names":[],"mappings":";;;AACA,iDAAqD;AAGrD,qEAAkE;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAa,KAAM,SAAQ,+CAAsB;IAe7C;;;OAGG;IACH,YAA6B,OAAgC;QACzD,KAAK,CAAC,IAAA,cAAS,EAAC,oBAAqB,OAAQ,EAAE,CAAC,CAAC;QADxB,YAAO,GAAP,OAAO,CAAyB;IAE7D,CAAC;IAnBD;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,CAAC,WAAoC;QAC1C,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAUD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QAC/B,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;CACJ;AA1CD,sBA0CC"}
@@ -35,8 +35,8 @@ import { PageElementInteraction } from './PageElementInteraction';
35
35
  * }
36
36
  *
37
37
  * @example <caption>Double-clicking on an element</caption>
38
- * import { actorCalled } from '@serenity-js/core';
39
- * import { BrowseTheWeb, DoubleClick, isVisible, Enter, Text, Wait } from '@serenity-js/webdriverio';
38
+ * import { actorCalled, Wait } from '@serenity-js/core';
39
+ * import { BrowseTheWeb, DoubleClick, isVisible, Enter, Text } from '@serenity-js/webdriverio';
40
40
  * import { Ensure, equals, not } from '@serenity-js/assertions';
41
41
  *
42
42
  * actorCalled('Dorothy')
@@ -37,8 +37,8 @@ const PageElementInteraction_1 = require("./PageElementInteraction");
37
37
  * }
38
38
  *
39
39
  * @example <caption>Double-clicking on an element</caption>
40
- * import { actorCalled } from '@serenity-js/core';
41
- * import { BrowseTheWeb, DoubleClick, isVisible, Enter, Text, Wait } from '@serenity-js/webdriverio';
40
+ * import { actorCalled, Wait } from '@serenity-js/core';
41
+ * import { BrowseTheWeb, DoubleClick, isVisible, Enter, Text } from '@serenity-js/webdriverio';
42
42
  * import { Ensure, equals, not } from '@serenity-js/assertions';
43
43
  *
44
44
  * actorCalled('Dorothy')
@@ -222,8 +222,9 @@ class ExecuteAsynchronousScript extends ExecuteScriptWithArguments {
222
222
  withArguments(...args) {
223
223
  return new ExecuteAsynchronousScript(this.script, args);
224
224
  }
225
- executeAs(actor, args) {
226
- return abilities_1.BrowseTheWeb.as(actor).executeAsyncScript(this.script, ...args); // todo: fix types
225
+ async executeAs(actor, args) {
226
+ const page = await abilities_1.BrowseTheWeb.as(actor).currentPage();
227
+ return page.executeAsyncScript(this.script, ...args); // todo: fix types
227
228
  }
228
229
  toString() {
229
230
  return this.args.length > 0
@@ -254,9 +255,9 @@ class ExecuteScriptFromUrl extends core_1.Interaction {
254
255
  * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
255
256
  * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
256
257
  */
257
- performAs(actor) {
258
- return abilities_1.BrowseTheWeb.as(actor)
259
- .executeAsyncScript(
258
+ async performAs(actor) {
259
+ const page = await abilities_1.BrowseTheWeb.as(actor).currentPage();
260
+ return page.executeAsyncScript(
260
261
  /* istanbul ignore next */
261
262
  function executeScriptFromUrl(sourceUrl, callback) {
262
263
  const alreadyLoadedScripts = Array.prototype.slice
@@ -299,8 +300,9 @@ class ExecuteSynchronousScript extends ExecuteScriptWithArguments {
299
300
  withArguments(...args) {
300
301
  return new ExecuteSynchronousScript(this.script, args);
301
302
  }
302
- executeAs(actor, args) {
303
- return abilities_1.BrowseTheWeb.as(actor).executeScript(this.script, ...args); // todo fix type
303
+ async executeAs(actor, args) {
304
+ const page = await abilities_1.BrowseTheWeb.as(actor).currentPage();
305
+ return page.executeScript(this.script, ...args); // todo fix type
304
306
  }
305
307
  toString() {
306
308
  return this.args.length > 0
@@ -1 +1 @@
1
- {"version":3,"file":"ExecuteScript.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExecuteScript.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/ExecuteScript.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ import { PageElementInteraction } from './PageElementInteraction';
44
44
  * @extends {ElementInteraction}
45
45
  */
46
46
  export declare class Hover extends PageElementInteraction {
47
- private readonly target;
47
+ private readonly element;
48
48
  /**
49
49
  * @desc
50
50
  * Instantiates this {@link @serenity-js/core/lib/screenplay~Interaction}.
@@ -56,10 +56,10 @@ export declare class Hover extends PageElementInteraction {
56
56
  */
57
57
  static over(target: Answerable<PageElement>): Interaction;
58
58
  /**
59
- * @param {Answerable<PageElement>} target
59
+ * @param {Answerable<PageElement>} element
60
60
  * The element to be hovered over
61
61
  */
62
- constructor(target: Answerable<PageElement>);
62
+ constructor(element: Answerable<PageElement>);
63
63
  /**
64
64
  * @desc
65
65
  * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}