@serenity-js/webdriverio 2.33.1 → 3.0.0-rc.11

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 (247) hide show
  1. package/CHANGELOG.md +455 -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} +42 -27
  11. package/lib/screenplay/abilities/{BrowseTheWeb.js → BrowseTheWebWithWebdriverIO.js} +104 -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/WebdriverIOFrame.d.ts +10 -0
  23. package/lib/screenplay/models/WebdriverIOFrame.js +34 -0
  24. package/lib/screenplay/models/WebdriverIOFrame.js.map +1 -0
  25. package/lib/screenplay/models/WebdriverIOModalDialog.d.ts +11 -0
  26. package/lib/screenplay/models/WebdriverIOModalDialog.js +40 -0
  27. package/lib/screenplay/models/WebdriverIOModalDialog.js.map +1 -0
  28. package/lib/screenplay/models/WebdriverIOPage.d.ts +26 -0
  29. package/lib/screenplay/models/WebdriverIOPage.js +104 -0
  30. package/lib/screenplay/models/WebdriverIOPage.js.map +1 -0
  31. package/lib/screenplay/models/WebdriverIOPageElement.d.ts +31 -0
  32. package/lib/screenplay/models/WebdriverIOPageElement.js +185 -0
  33. package/lib/screenplay/models/WebdriverIOPageElement.js.map +1 -0
  34. package/lib/screenplay/models/index.d.ts +5 -0
  35. package/lib/{stage/crew/photographer/strategies → screenplay/models}/index.js +5 -4
  36. package/lib/screenplay/models/index.js.map +1 -0
  37. package/lib/screenplay/models/locators/WebdriverIOLocator.d.ts +9 -0
  38. package/lib/screenplay/models/locators/WebdriverIOLocator.js +22 -0
  39. package/lib/screenplay/models/locators/WebdriverIOLocator.js.map +1 -0
  40. package/lib/screenplay/models/locators/WebdriverIONativeElementRoot.d.ts +2 -0
  41. package/lib/screenplay/{interactions/EnterBuilder.js → models/locators/WebdriverIONativeElementRoot.js} +1 -1
  42. package/lib/screenplay/models/locators/WebdriverIONativeElementRoot.js.map +1 -0
  43. package/lib/screenplay/models/locators/index.d.ts +2 -0
  44. package/lib/{stage/crew/photographer → screenplay/models/locators}/index.js +2 -2
  45. package/lib/screenplay/models/locators/index.js.map +1 -0
  46. package/package.json +14 -24
  47. package/src/adapter/WebdriverIOFrameworkAdapter.ts +2 -0
  48. package/src/adapter/WebdriverIONotifier.ts +225 -23
  49. package/src/index.ts +0 -3
  50. package/src/screenplay/abilities/{BrowseTheWeb.ts → BrowseTheWebWithWebdriverIO.ts} +125 -35
  51. package/src/screenplay/abilities/index.ts +1 -1
  52. package/src/screenplay/index.ts +1 -2
  53. package/src/screenplay/models/WebdriverIOCookie.ts +44 -0
  54. package/src/screenplay/models/WebdriverIOFrame.ts +38 -0
  55. package/src/screenplay/models/WebdriverIOModalDialog.ts +45 -0
  56. package/src/screenplay/models/WebdriverIOPage.ts +128 -0
  57. package/src/screenplay/models/WebdriverIOPageElement.ts +227 -0
  58. package/src/screenplay/models/index.ts +5 -0
  59. package/src/screenplay/models/locators/WebdriverIOLocator.ts +43 -0
  60. package/src/screenplay/models/locators/WebdriverIONativeElementRoot.ts +3 -0
  61. package/src/screenplay/models/locators/index.ts +2 -0
  62. package/lib/expectations/ElementExpectation.d.ts +0 -11
  63. package/lib/expectations/ElementExpectation.js +0 -27
  64. package/lib/expectations/ElementExpectation.js.map +0 -1
  65. package/lib/expectations/index.d.ts +0 -6
  66. package/lib/expectations/index.js +0 -19
  67. package/lib/expectations/index.js.map +0 -1
  68. package/lib/expectations/isActive.d.ts +0 -15
  69. package/lib/expectations/isActive.js +0 -21
  70. package/lib/expectations/isActive.js.map +0 -1
  71. package/lib/expectations/isClickable.d.ts +0 -20
  72. package/lib/expectations/isClickable.js +0 -26
  73. package/lib/expectations/isClickable.js.map +0 -1
  74. package/lib/expectations/isEnabled.d.ts +0 -14
  75. package/lib/expectations/isEnabled.js +0 -20
  76. package/lib/expectations/isEnabled.js.map +0 -1
  77. package/lib/expectations/isPresent.d.ts +0 -15
  78. package/lib/expectations/isPresent.js +0 -21
  79. package/lib/expectations/isPresent.js.map +0 -1
  80. package/lib/expectations/isSelected.d.ts +0 -14
  81. package/lib/expectations/isSelected.js +0 -20
  82. package/lib/expectations/isSelected.js.map +0 -1
  83. package/lib/expectations/isVisible.d.ts +0 -14
  84. package/lib/expectations/isVisible.js +0 -20
  85. package/lib/expectations/isVisible.js.map +0 -1
  86. package/lib/input/Key.d.ts +0 -73
  87. package/lib/input/Key.js +0 -84
  88. package/lib/input/Key.js.map +0 -1
  89. package/lib/input/index.d.ts +0 -1
  90. package/lib/input/index.js +0 -14
  91. package/lib/input/index.js.map +0 -1
  92. package/lib/screenplay/abilities/BrowseTheWeb.js.map +0 -1
  93. package/lib/screenplay/interactions/Clear.d.ts +0 -79
  94. package/lib/screenplay/interactions/Clear.js +0 -97
  95. package/lib/screenplay/interactions/Clear.js.map +0 -1
  96. package/lib/screenplay/interactions/Click.d.ts +0 -73
  97. package/lib/screenplay/interactions/Click.js +0 -84
  98. package/lib/screenplay/interactions/Click.js.map +0 -1
  99. package/lib/screenplay/interactions/DoubleClick.d.ts +0 -90
  100. package/lib/screenplay/interactions/DoubleClick.js +0 -101
  101. package/lib/screenplay/interactions/DoubleClick.js.map +0 -1
  102. package/lib/screenplay/interactions/Enter.d.ts +0 -73
  103. package/lib/screenplay/interactions/Enter.js +0 -87
  104. package/lib/screenplay/interactions/Enter.js.map +0 -1
  105. package/lib/screenplay/interactions/EnterBuilder.d.ts +0 -25
  106. package/lib/screenplay/interactions/EnterBuilder.js.map +0 -1
  107. package/lib/screenplay/interactions/ExecuteScript.d.ts +0 -206
  108. package/lib/screenplay/interactions/ExecuteScript.js +0 -311
  109. package/lib/screenplay/interactions/ExecuteScript.js.map +0 -1
  110. package/lib/screenplay/interactions/Hover.d.ts +0 -78
  111. package/lib/screenplay/interactions/Hover.js +0 -89
  112. package/lib/screenplay/interactions/Hover.js.map +0 -1
  113. package/lib/screenplay/interactions/Navigate.d.ts +0 -141
  114. package/lib/screenplay/interactions/Navigate.js +0 -197
  115. package/lib/screenplay/interactions/Navigate.js.map +0 -1
  116. package/lib/screenplay/interactions/Press.d.ts +0 -84
  117. package/lib/screenplay/interactions/Press.js +0 -152
  118. package/lib/screenplay/interactions/Press.js.map +0 -1
  119. package/lib/screenplay/interactions/PressBuilder.d.ts +0 -26
  120. package/lib/screenplay/interactions/PressBuilder.js +0 -3
  121. package/lib/screenplay/interactions/PressBuilder.js.map +0 -1
  122. package/lib/screenplay/interactions/RightClick.d.ts +0 -89
  123. package/lib/screenplay/interactions/RightClick.js +0 -100
  124. package/lib/screenplay/interactions/RightClick.js.map +0 -1
  125. package/lib/screenplay/interactions/Scroll.d.ts +0 -75
  126. package/lib/screenplay/interactions/Scroll.js +0 -86
  127. package/lib/screenplay/interactions/Scroll.js.map +0 -1
  128. package/lib/screenplay/interactions/Wait.d.ts +0 -143
  129. package/lib/screenplay/interactions/Wait.js +0 -247
  130. package/lib/screenplay/interactions/Wait.js.map +0 -1
  131. package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -32
  132. package/lib/screenplay/interactions/WaitBuilder.js +0 -3
  133. package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
  134. package/lib/screenplay/interactions/WebElementInteraction.d.ts +0 -37
  135. package/lib/screenplay/interactions/WebElementInteraction.js +0 -52
  136. package/lib/screenplay/interactions/WebElementInteraction.js.map +0 -1
  137. package/lib/screenplay/interactions/index.d.ts +0 -13
  138. package/lib/screenplay/interactions/index.js +0 -26
  139. package/lib/screenplay/interactions/index.js.map +0 -1
  140. package/lib/screenplay/questions/Attribute.d.ts +0 -82
  141. package/lib/screenplay/questions/Attribute.js +0 -102
  142. package/lib/screenplay/questions/Attribute.js.map +0 -1
  143. package/lib/screenplay/questions/CSSClasses.d.ts +0 -92
  144. package/lib/screenplay/questions/CSSClasses.js +0 -112
  145. package/lib/screenplay/questions/CSSClasses.js.map +0 -1
  146. package/lib/screenplay/questions/LastScriptExecution.d.ts +0 -14
  147. package/lib/screenplay/questions/LastScriptExecution.js +0 -22
  148. package/lib/screenplay/questions/LastScriptExecution.js.map +0 -1
  149. package/lib/screenplay/questions/NestedTargetBuilder.d.ts +0 -27
  150. package/lib/screenplay/questions/NestedTargetBuilder.js +0 -3
  151. package/lib/screenplay/questions/NestedTargetBuilder.js.map +0 -1
  152. package/lib/screenplay/questions/TargetBuilder.d.ts +0 -25
  153. package/lib/screenplay/questions/TargetBuilder.js +0 -3
  154. package/lib/screenplay/questions/TargetBuilder.js.map +0 -1
  155. package/lib/screenplay/questions/Text.d.ts +0 -95
  156. package/lib/screenplay/questions/Text.js +0 -130
  157. package/lib/screenplay/questions/Text.js.map +0 -1
  158. package/lib/screenplay/questions/Value.d.ts +0 -63
  159. package/lib/screenplay/questions/Value.js +0 -78
  160. package/lib/screenplay/questions/Value.js.map +0 -1
  161. package/lib/screenplay/questions/Website.d.ts +0 -21
  162. package/lib/screenplay/questions/Website.js +0 -31
  163. package/lib/screenplay/questions/Website.js.map +0 -1
  164. package/lib/screenplay/questions/index.d.ts +0 -10
  165. package/lib/screenplay/questions/index.js +0 -23
  166. package/lib/screenplay/questions/index.js.map +0 -1
  167. package/lib/screenplay/questions/lists.d.ts +0 -86
  168. package/lib/screenplay/questions/lists.js +0 -137
  169. package/lib/screenplay/questions/lists.js.map +0 -1
  170. package/lib/screenplay/questions/locators.d.ts +0 -196
  171. package/lib/screenplay/questions/locators.js +0 -219
  172. package/lib/screenplay/questions/locators.js.map +0 -1
  173. package/lib/screenplay/questions/targets.d.ts +0 -254
  174. package/lib/screenplay/questions/targets.js +0 -334
  175. package/lib/screenplay/questions/targets.js.map +0 -1
  176. package/lib/stage/crew/index.d.ts +0 -1
  177. package/lib/stage/crew/index.js +0 -14
  178. package/lib/stage/crew/index.js.map +0 -1
  179. package/lib/stage/crew/photographer/Photographer.d.ts +0 -83
  180. package/lib/stage/crew/photographer/Photographer.js +0 -102
  181. package/lib/stage/crew/photographer/Photographer.js.map +0 -1
  182. package/lib/stage/crew/photographer/index.d.ts +0 -2
  183. package/lib/stage/crew/photographer/index.js.map +0 -1
  184. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +0 -28
  185. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +0 -65
  186. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +0 -1
  187. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +0 -18
  188. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +0 -30
  189. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +0 -1
  190. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +0 -17
  191. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +0 -28
  192. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +0 -1
  193. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +0 -19
  194. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +0 -28
  195. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +0 -1
  196. package/lib/stage/crew/photographer/strategies/index.d.ts +0 -4
  197. package/lib/stage/crew/photographer/strategies/index.js.map +0 -1
  198. package/lib/stage/index.d.ts +0 -1
  199. package/lib/stage/index.js +0 -14
  200. package/lib/stage/index.js.map +0 -1
  201. package/src/expectations/ElementExpectation.ts +0 -31
  202. package/src/expectations/index.ts +0 -6
  203. package/src/expectations/isActive.ts +0 -21
  204. package/src/expectations/isClickable.ts +0 -26
  205. package/src/expectations/isEnabled.ts +0 -19
  206. package/src/expectations/isPresent.ts +0 -20
  207. package/src/expectations/isSelected.ts +0 -19
  208. package/src/expectations/isVisible.ts +0 -19
  209. package/src/input/Key.ts +0 -83
  210. package/src/input/index.ts +0 -1
  211. package/src/screenplay/interactions/Clear.ts +0 -102
  212. package/src/screenplay/interactions/Click.ts +0 -85
  213. package/src/screenplay/interactions/DoubleClick.ts +0 -102
  214. package/src/screenplay/interactions/Enter.ts +0 -93
  215. package/src/screenplay/interactions/EnterBuilder.ts +0 -27
  216. package/src/screenplay/interactions/ExecuteScript.ts +0 -344
  217. package/src/screenplay/interactions/Hover.ts +0 -90
  218. package/src/screenplay/interactions/Navigate.ts +0 -208
  219. package/src/screenplay/interactions/Press.ts +0 -172
  220. package/src/screenplay/interactions/PressBuilder.ts +0 -28
  221. package/src/screenplay/interactions/RightClick.ts +0 -100
  222. package/src/screenplay/interactions/Scroll.ts +0 -87
  223. package/src/screenplay/interactions/Wait.ts +0 -267
  224. package/src/screenplay/interactions/WaitBuilder.ts +0 -34
  225. package/src/screenplay/interactions/WebElementInteraction.ts +0 -56
  226. package/src/screenplay/interactions/index.ts +0 -13
  227. package/src/screenplay/questions/Attribute.ts +0 -112
  228. package/src/screenplay/questions/CSSClasses.ts +0 -116
  229. package/src/screenplay/questions/LastScriptExecution.ts +0 -21
  230. package/src/screenplay/questions/NestedTargetBuilder.ts +0 -30
  231. package/src/screenplay/questions/TargetBuilder.ts +0 -27
  232. package/src/screenplay/questions/Text.ts +0 -140
  233. package/src/screenplay/questions/Value.ts +0 -82
  234. package/src/screenplay/questions/Website.ts +0 -34
  235. package/src/screenplay/questions/index.ts +0 -10
  236. package/src/screenplay/questions/lists.ts +0 -161
  237. package/src/screenplay/questions/locators.ts +0 -254
  238. package/src/screenplay/questions/targets.ts +0 -401
  239. package/src/stage/crew/index.ts +0 -1
  240. package/src/stage/crew/photographer/Photographer.ts +0 -108
  241. package/src/stage/crew/photographer/index.ts +0 -2
  242. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +0 -103
  243. package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +0 -28
  244. package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +0 -26
  245. package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +0 -26
  246. package/src/stage/crew/photographer/strategies/index.ts +0 -4
  247. package/src/stage/index.ts +0 -1
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Hover = void 0;
4
- const io_1 = require("@serenity-js/core/lib/io");
5
- const WebElementInteraction_1 = require("./WebElementInteraction");
6
- /**
7
- * @desc
8
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
9
- * hover the mouse pointer over a given Web element.
10
- *
11
- * @example <caption>Example widget</caption>
12
- * <a data-test="example-link"
13
- * class="off"
14
- * onmouseover="this.className='on';"
15
- * onmouseout="this.className='off';"
16
- * href="/">hover over me</a>
17
- *
18
- * @example <caption>Lean Page Object describing the widget</caption>
19
- * import { by, Target } from '@serenity-js/webdriverio';
20
- *
21
- * class Example {
22
- * static link = Target.the('example link')
23
- * .located(by.css('[data-test="example-link"]'));
24
- * }
25
- *
26
- * @example <caption>Hovering over an element</caption>
27
- * import { actorCalled } from '@serenity-js/core';
28
- * import { BrowseTheWeb, Hover, CSSClasses } from '@serenity-js/webdriverio';
29
- * import { Ensure, equals } from '@serenity-js/assertions';
30
- *
31
- * actorCalled('Hank')
32
- * .whoCan(BrowseTheWeb.using(browser))
33
- * .attemptsTo(
34
- * Ensure.that(CSSClasses.of(Example.link), equals([ 'off' ])),
35
- *
36
- * Hover.over(Example.link),
37
- * Ensure.that(CSSClasses.of(Example.link), equals([ 'on' ])),
38
- * );
39
- *
40
- * @see {@link BrowseTheWeb}
41
- * @see {@link Target}
42
- * @see {@link CSSClasses}
43
- * @see {@link @serenity-js/assertions~Ensure}
44
- * @see {@link @serenity-js/assertions/lib/expectations~equals}
45
- *
46
- * @extends {WebElementInteraction}
47
- */
48
- class Hover extends WebElementInteraction_1.WebElementInteraction {
49
- /**
50
- * @param {Answerable<Element<'async'>>} target
51
- * The element to be hovered over
52
- */
53
- constructor(target) {
54
- super((0, io_1.formatted) `#actor hovers the mouse over ${target}`);
55
- this.target = target;
56
- }
57
- /**
58
- * @desc
59
- * Instantiates this {@link @serenity-js/core/lib/screenplay~Interaction}.
60
- *
61
- * @param {Answerable<Element<'async'>>} target
62
- * The element to be hovered over
63
- *
64
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
65
- */
66
- static over(target) {
67
- return new Hover(target);
68
- }
69
- /**
70
- * @desc
71
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
72
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
73
- *
74
- * @param {UsesAbilities & AnswersQuestions} actor
75
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
76
- *
77
- * @returns {PromiseLike<void>}
78
- *
79
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
80
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
81
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
82
- */
83
- async performAs(actor) {
84
- const element = await this.resolve(actor, this.target);
85
- return element.moveTo();
86
- }
87
- }
88
- exports.Hover = Hover;
89
- //# sourceMappingURL=Hover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Hover.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Hover.ts"],"names":[],"mappings":";;;AACA,iDAAqD;AAGrD,mEAAgE;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAa,KAAM,SAAQ,6CAAqB;IAe5C;;;OAGG;IACH,YAA6B,MAAoC;QAC7D,KAAK,CAAC,IAAA,cAAS,EAAC,gCAAiC,MAAO,EAAE,CAAC,CAAC;QADnC,WAAM,GAAN,MAAM,CAA8B;IAEjE,CAAC;IAnBD;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,CAAC,MAAoC;QAC5C,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAUD;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACJ;AAzCD,sBAyCC"}
@@ -1,141 +0,0 @@
1
- import { Answerable, Interaction } from '@serenity-js/core';
2
- /**
3
- * @desc
4
- * Allows the {@link @serenity-js/core/lib/screenplay/actor~Actor} to navigate
5
- * to a specific destination, as well as back and forth in the browser history,
6
- * or reload the current page.
7
- */
8
- export declare class Navigate {
9
- /**
10
- * @desc
11
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor}
12
- * to navigate to a given URL.
13
- *
14
- * The URL can be:
15
- * - absolute, i.e. `https://example.org/search`
16
- * - relative, i.e. `/search`
17
- *
18
- * If the URL is relative, WebdriverIO will append it to `baseUrl` specified in
19
- * the [configuration file](https://webdriver.io/docs/configurationfile/).
20
- *
21
- * @example <caption>wdio.conf.ts</caption>
22
- * export const config = {
23
- * baseUrl: 'https://example.org',
24
- * // ...
25
- * }
26
- *
27
- * @example <caption>Navigate to path relative to baseUrl</caption>
28
- * import { actorCalled } from '@serenity-js/core';
29
- * import { BrowseTheWeb, Navigate } from '@serenity-js/webdriverio';
30
- *
31
- * actorCalled('Hannu')
32
- * .whoCan(BrowseTheWeb.using(browser))
33
- * .attemptsTo(
34
- * Navigate.to('/search'),
35
- * );
36
- *
37
- * @example <caption>Navigate to an absolute URL (overrides baseUrl)</caption>
38
- * import { actorCalled } from '@serenity-js/core';
39
- * import { BrowseTheWeb, Navigate } from '@serenity-js/webdriverio';
40
- *
41
- * actorCalled('Hannu')
42
- * .whoCan(BrowseTheWeb.using(browser))
43
- * .attemptsTo(
44
- * Navigate.to('https://mycompany.org/login'),
45
- * );
46
- *
47
- * @param {Answerable<string>} url
48
- * An absolute URL or path an {@link @serenity-js/core/lib/screenplay/actor~Actor}
49
- * should navigate to
50
- *
51
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
52
- *
53
- * @see {@link BrowseTheWeb}
54
- */
55
- static to(url: Answerable<string>): Interaction;
56
- /**
57
- * @desc
58
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
59
- * navigate back one page in the joint session history of the current top-level browsing context.
60
- *
61
- * @example <caption>Navigate to path relative to baseUrl</caption>
62
- * import { actorCalled } from '@serenity-js/core';
63
- * import { Ensure, endsWith } from '@serenity-js/assertions';
64
- * import { BrowseTheWeb, Navigate } from '@serenity-js/webdriverio';
65
- *
66
- * actorCalled('Hannu')
67
- * .whoCan(BrowseTheWeb.using(browser))
68
- * .attemptsTo(
69
- * Navigate.to('/first'),
70
- * Navigate.to('/second'),
71
- *
72
- * Navigate.back(),
73
- *
74
- * Ensure.that(Website.url(), endsWith('/first')),
75
- * );
76
- *
77
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
78
- *
79
- * @see https://webdriver.io/docs/api/webdriver/#back
80
- * @see {@link BrowseTheWeb}
81
- * @see {@link @serenity-js/assertions~Ensure}
82
- * @see {@link @serenity-js/assertions/lib/expectations~endsWith}
83
- */
84
- static back(): Interaction;
85
- /**
86
- * @desc
87
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
88
- * navigate forward one page in the session history.
89
- *
90
- * @example <caption>Navigate to path relative to baseUrl</caption>
91
- * import { actorCalled } from '@serenity-js/core';
92
- * import { Ensure, endsWith } from '@serenity-js/assertions';
93
- * import { BrowseTheWeb, Navigate } from '@serenity-js/webdriverio';
94
- *
95
- * actorCalled('Hannu')
96
- * .whoCan(BrowseTheWeb.using(browser))
97
- * .attemptsTo(
98
- * Navigate.to('/first'),
99
- * Navigate.to('/second'),
100
- *
101
- * Navigate.back(),
102
- * Navigate.forward(),
103
- *
104
- * Ensure.that(Website.url(), endsWith('/second')),
105
- * );
106
- *
107
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
108
- *
109
- * @see {@link BrowseTheWeb}
110
- * @see {@link @serenity-js/assertions~Ensure}
111
- * @see {@link @serenity-js/assertions/lib/expectations~endsWith}
112
- * @see https://webdriver.io/docs/api/webdriver/#forward
113
- */
114
- static forward(): Interaction;
115
- /**
116
- * @desc
117
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
118
- * reload the current page.
119
- *
120
- * @example <caption>Navigate to path relative to baseUrl</caption>
121
- * import { actorCalled } from '@serenity-js/core';
122
- * import { Ensure, endsWith } from '@serenity-js/assertions';
123
- * import { Navigate, BrowseTheWeb, DeleteCookies } from '@serenity-js/webdriverio';
124
- *
125
- * actorCalled('Hannu')
126
- * .whoCan(BrowseTheWeb.using(browser))
127
- * .attemptsTo(
128
- * Navigate.to('/login'),
129
- * DeleteCookies.called('session_id'),
130
- * Navigate.reloadPage(),
131
- * );
132
- *
133
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
134
- *
135
- * @see {@link BrowseTheWeb}
136
- * @see {@link DeleteCookies}
137
- * @see {@link @serenity-js/assertions~Ensure}
138
- * @see {@link @serenity-js/assertions/lib/expectations~endsWith}
139
- */
140
- static reloadPage(): Interaction;
141
- }
@@ -1,197 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Navigate = void 0;
4
- const core_1 = require("@serenity-js/core");
5
- const io_1 = require("@serenity-js/core/lib/io");
6
- const __1 = require("../");
7
- /**
8
- * @desc
9
- * Allows the {@link @serenity-js/core/lib/screenplay/actor~Actor} to navigate
10
- * to a specific destination, as well as back and forth in the browser history,
11
- * or reload the current page.
12
- */
13
- class Navigate {
14
- /**
15
- * @desc
16
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor}
17
- * to navigate to a given URL.
18
- *
19
- * The URL can be:
20
- * - absolute, i.e. `https://example.org/search`
21
- * - relative, i.e. `/search`
22
- *
23
- * If the URL is relative, WebdriverIO will append it to `baseUrl` specified in
24
- * the [configuration file](https://webdriver.io/docs/configurationfile/).
25
- *
26
- * @example <caption>wdio.conf.ts</caption>
27
- * export const config = {
28
- * baseUrl: 'https://example.org',
29
- * // ...
30
- * }
31
- *
32
- * @example <caption>Navigate to path relative to baseUrl</caption>
33
- * import { actorCalled } from '@serenity-js/core';
34
- * import { BrowseTheWeb, Navigate } from '@serenity-js/webdriverio';
35
- *
36
- * actorCalled('Hannu')
37
- * .whoCan(BrowseTheWeb.using(browser))
38
- * .attemptsTo(
39
- * Navigate.to('/search'),
40
- * );
41
- *
42
- * @example <caption>Navigate to an absolute URL (overrides baseUrl)</caption>
43
- * import { actorCalled } from '@serenity-js/core';
44
- * import { BrowseTheWeb, Navigate } from '@serenity-js/webdriverio';
45
- *
46
- * actorCalled('Hannu')
47
- * .whoCan(BrowseTheWeb.using(browser))
48
- * .attemptsTo(
49
- * Navigate.to('https://mycompany.org/login'),
50
- * );
51
- *
52
- * @param {Answerable<string>} url
53
- * An absolute URL or path an {@link @serenity-js/core/lib/screenplay/actor~Actor}
54
- * should navigate to
55
- *
56
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
57
- *
58
- * @see {@link BrowseTheWeb}
59
- */
60
- static to(url) {
61
- return new NavigateToUrl(url);
62
- }
63
- /**
64
- * @desc
65
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
66
- * navigate back one page in the joint session history of the current top-level browsing context.
67
- *
68
- * @example <caption>Navigate to path relative to baseUrl</caption>
69
- * import { actorCalled } from '@serenity-js/core';
70
- * import { Ensure, endsWith } from '@serenity-js/assertions';
71
- * import { BrowseTheWeb, Navigate } from '@serenity-js/webdriverio';
72
- *
73
- * actorCalled('Hannu')
74
- * .whoCan(BrowseTheWeb.using(browser))
75
- * .attemptsTo(
76
- * Navigate.to('/first'),
77
- * Navigate.to('/second'),
78
- *
79
- * Navigate.back(),
80
- *
81
- * Ensure.that(Website.url(), endsWith('/first')),
82
- * );
83
- *
84
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
85
- *
86
- * @see https://webdriver.io/docs/api/webdriver/#back
87
- * @see {@link BrowseTheWeb}
88
- * @see {@link @serenity-js/assertions~Ensure}
89
- * @see {@link @serenity-js/assertions/lib/expectations~endsWith}
90
- */
91
- static back() {
92
- return core_1.Interaction.where(`#actor navigates back in the browser history`, actor => __1.BrowseTheWeb.as(actor).browser.back());
93
- }
94
- /**
95
- * @desc
96
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
97
- * navigate forward one page in the session history.
98
- *
99
- * @example <caption>Navigate to path relative to baseUrl</caption>
100
- * import { actorCalled } from '@serenity-js/core';
101
- * import { Ensure, endsWith } from '@serenity-js/assertions';
102
- * import { BrowseTheWeb, Navigate } from '@serenity-js/webdriverio';
103
- *
104
- * actorCalled('Hannu')
105
- * .whoCan(BrowseTheWeb.using(browser))
106
- * .attemptsTo(
107
- * Navigate.to('/first'),
108
- * Navigate.to('/second'),
109
- *
110
- * Navigate.back(),
111
- * Navigate.forward(),
112
- *
113
- * Ensure.that(Website.url(), endsWith('/second')),
114
- * );
115
- *
116
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
117
- *
118
- * @see {@link BrowseTheWeb}
119
- * @see {@link @serenity-js/assertions~Ensure}
120
- * @see {@link @serenity-js/assertions/lib/expectations~endsWith}
121
- * @see https://webdriver.io/docs/api/webdriver/#forward
122
- */
123
- static forward() {
124
- return core_1.Interaction.where(`#actor navigates forward in the browser history`, actor => __1.BrowseTheWeb.as(actor).browser.forward());
125
- }
126
- /**
127
- * @desc
128
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
129
- * reload the current page.
130
- *
131
- * @example <caption>Navigate to path relative to baseUrl</caption>
132
- * import { actorCalled } from '@serenity-js/core';
133
- * import { Ensure, endsWith } from '@serenity-js/assertions';
134
- * import { Navigate, BrowseTheWeb, DeleteCookies } from '@serenity-js/webdriverio';
135
- *
136
- * actorCalled('Hannu')
137
- * .whoCan(BrowseTheWeb.using(browser))
138
- * .attemptsTo(
139
- * Navigate.to('/login'),
140
- * DeleteCookies.called('session_id'),
141
- * Navigate.reloadPage(),
142
- * );
143
- *
144
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
145
- *
146
- * @see {@link BrowseTheWeb}
147
- * @see {@link DeleteCookies}
148
- * @see {@link @serenity-js/assertions~Ensure}
149
- * @see {@link @serenity-js/assertions/lib/expectations~endsWith}
150
- */
151
- static reloadPage() {
152
- return core_1.Interaction.where(`#actor reloads the page`, actor => __1.BrowseTheWeb.as(actor).browser.refresh());
153
- }
154
- }
155
- exports.Navigate = Navigate;
156
- /**
157
- * @package
158
- */
159
- class NavigateToUrl extends core_1.Interaction {
160
- constructor(url) {
161
- super();
162
- this.url = url;
163
- }
164
- /**
165
- * @desc
166
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
167
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
168
- *
169
- * @param {UsesAbilities & AnswersQuestions} actor
170
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor}
171
- * to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
172
- *
173
- * @returns {PromiseLike<void>}
174
- *
175
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
176
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
177
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
178
- */
179
- performAs(actor) {
180
- return actor.answer(this.url)
181
- .then(url => __1.BrowseTheWeb.as(actor)
182
- .get(url)
183
- .catch(error => {
184
- throw new core_1.TestCompromisedError(`Couldn't navigate to ${url}`, error);
185
- }));
186
- }
187
- /**
188
- * @desc
189
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
190
- *
191
- * @returns {string}
192
- */
193
- toString() {
194
- return (0, io_1.formatted) `#actor navigates to ${this.url}`;
195
- }
196
- }
197
- //# sourceMappingURL=Navigate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Navigate.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Navigate.ts"],"names":[],"mappings":";;;AAAA,4CAAmH;AACnH,iDAAqD;AAErD,2BAAmC;AAEnC;;;;;GAKG;AACH,MAAa,QAAQ;IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,MAAM,CAAC,EAAE,CAAC,GAAuB;QAC7B,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,IAAI;QACP,OAAO,kBAAW,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,EAAE,CAC7E,gBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CACxC,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,MAAM,CAAC,OAAO;QACV,OAAO,kBAAW,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,EAAE,CAChF,gBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAC3C,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,MAAM,CAAC,UAAU;QACb,OAAO,kBAAW,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,EAAE,CACxD,gBAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAC3C,CAAC;IACN,CAAC;CACJ;AAvJD,4BAuJC;AAED;;GAEG;AACH,MAAM,aAAc,SAAQ,kBAAW;IACnC,YAA6B,GAAuB;QAChD,KAAK,EAAE,CAAC;QADiB,QAAG,GAAH,GAAG,CAAoB;IAEpD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,KAAuC;QAC7C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;aACxB,IAAI,CAAC,GAAG,CAAC,EAAE,CACR,gBAAY,CAAC,EAAE,CAAC,KAAK,CAAC;aACjB,GAAG,CAAC,GAAG,CAAC;aACR,KAAK,CAAC,KAAK,CAAC,EAAE;YACX,MAAM,IAAI,2BAAoB,CAAC,wBAAyB,GAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC,CAAC,CACT,CAAA;IACT,CAAC;IAED;;;;;OAKG;IACH,QAAQ;QACJ,OAAO,IAAA,cAAS,EAAC,uBAAwB,IAAI,CAAC,GAAI,EAAE,CAAC;IACzD,CAAC;CACJ"}
@@ -1,84 +0,0 @@
1
- import { Activity, Answerable, AnswersQuestions, Interaction, UsesAbilities } from '@serenity-js/core';
2
- import { Element } from 'webdriverio';
3
- import { Key } from '../../input';
4
- import { PressBuilder } from './PressBuilder';
5
- import { WebElementInteraction } from './WebElementInteraction';
6
- /**
7
- * @desc
8
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
9
- * send a key press or a sequence of keys to a Web element.
10
- *
11
- * *Please note*: On macOS, some keyboard shortcuts might not work with the [`devtools` protocol](https://webdriver.io/docs/automationProtocols/#devtools-protocol).
12
- *
13
- * For example:
14
- * - to *copy*, instead of `Meta+C`, use `Control+Insert`
15
- * - to *cut*, instead of `Meta+X`, use `Control+Delete`
16
- * - to *paste*, instead of `Meta+V`, use `Shift+Insert`
17
- *
18
- * @example <caption>Example widget</caption>
19
- * <form>
20
- * <input type="text" name="example" id="example" />
21
- * </form>
22
- *
23
- * @example <caption>Lean Page Object describing the widget</caption>
24
- * import { by, Target } from '@serenity-js/webdriverio';
25
- *
26
- * class Form {
27
- * static exampleInput = Target.the('example input')
28
- * .located(by.id('example'));
29
- * }
30
- *
31
- * @example <caption>Pressing keys</caption>
32
- * import { actorCalled } from '@serenity-js/core';
33
- * import { BrowseTheWeb, Key, Press, Value } from '@serenity-js/webdriverio';
34
- * import { Ensure, equals } from '@serenity-js/assertions';
35
- *
36
- * actorCalled('Priyanka')
37
- * .whoCan(BrowseTheWeb.using(browser))
38
- * .attemptsTo(
39
- * Press.the('H', 'i', '!', Key.ENTER).in(Form.exampleInput),
40
- * Ensure.that(Value.of(Form.exampleInput), equals('Hi!')),
41
- * );
42
- *
43
- * @see {@link Key}
44
- * @see {@link BrowseTheWeb}
45
- * @see {@link Target}
46
- * @see {@link @serenity-js/assertions~Ensure}
47
- * @see {@link @serenity-js/assertions/lib/expectations~equals}
48
- *
49
- * @extends {WebElementInteraction}
50
- */
51
- export declare class Press extends WebElementInteraction {
52
- private readonly keys;
53
- /**
54
- * @desc
55
- * Instantiates this {@link @serenity-js/core/lib/screenplay~Interaction}.
56
- *
57
- * @param {...keys: Array<Answerable<Key | string | Key[] | string[]>>} keys
58
- * A sequence of one or more keys to press
59
- *
60
- * @returns {PressBuilder}
61
- */
62
- static the(...keys: Array<Answerable<Key | string | Key[] | string[]>>): Activity & PressBuilder;
63
- in(field: Answerable<Element<'async'>>): Interaction;
64
- /**
65
- * @param {Answerable<Array<Key | string>>} keys
66
- * A sequence of one or more keys to press
67
- */
68
- constructor(keys: Answerable<Array<Key | string>>);
69
- /**
70
- * @desc
71
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
72
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
73
- *
74
- * @param {UsesAbilities & AnswersQuestions} actor
75
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
76
- *
77
- * @returns {PromiseLike<void>}
78
- *
79
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
80
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
81
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
82
- */
83
- performAs(actor: UsesAbilities & AnswersQuestions): Promise<void>;
84
- }
@@ -1,152 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Press = void 0;
4
- const core_1 = require("@serenity-js/core");
5
- const io_1 = require("@serenity-js/core/lib/io");
6
- const input_1 = require("../../input");
7
- const abilities_1 = require("../abilities");
8
- const WebElementInteraction_1 = require("./WebElementInteraction");
9
- /**
10
- * @desc
11
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
12
- * send a key press or a sequence of keys to a Web element.
13
- *
14
- * *Please note*: On macOS, some keyboard shortcuts might not work with the [`devtools` protocol](https://webdriver.io/docs/automationProtocols/#devtools-protocol).
15
- *
16
- * For example:
17
- * - to *copy*, instead of `Meta+C`, use `Control+Insert`
18
- * - to *cut*, instead of `Meta+X`, use `Control+Delete`
19
- * - to *paste*, instead of `Meta+V`, use `Shift+Insert`
20
- *
21
- * @example <caption>Example widget</caption>
22
- * <form>
23
- * <input type="text" name="example" id="example" />
24
- * </form>
25
- *
26
- * @example <caption>Lean Page Object describing the widget</caption>
27
- * import { by, Target } from '@serenity-js/webdriverio';
28
- *
29
- * class Form {
30
- * static exampleInput = Target.the('example input')
31
- * .located(by.id('example'));
32
- * }
33
- *
34
- * @example <caption>Pressing keys</caption>
35
- * import { actorCalled } from '@serenity-js/core';
36
- * import { BrowseTheWeb, Key, Press, Value } from '@serenity-js/webdriverio';
37
- * import { Ensure, equals } from '@serenity-js/assertions';
38
- *
39
- * actorCalled('Priyanka')
40
- * .whoCan(BrowseTheWeb.using(browser))
41
- * .attemptsTo(
42
- * Press.the('H', 'i', '!', Key.ENTER).in(Form.exampleInput),
43
- * Ensure.that(Value.of(Form.exampleInput), equals('Hi!')),
44
- * );
45
- *
46
- * @see {@link Key}
47
- * @see {@link BrowseTheWeb}
48
- * @see {@link Target}
49
- * @see {@link @serenity-js/assertions~Ensure}
50
- * @see {@link @serenity-js/assertions/lib/expectations~equals}
51
- *
52
- * @extends {WebElementInteraction}
53
- */
54
- class Press extends WebElementInteraction_1.WebElementInteraction {
55
- /**
56
- * @param {Answerable<Array<Key | string>>} keys
57
- * A sequence of one or more keys to press
58
- */
59
- constructor(keys) {
60
- super((0, io_1.formatted) `#actor presses ${keys}`);
61
- this.keys = keys;
62
- }
63
- /**
64
- * @desc
65
- * Instantiates this {@link @serenity-js/core/lib/screenplay~Interaction}.
66
- *
67
- * @param {...keys: Array<Answerable<Key | string | Key[] | string[]>>} keys
68
- * A sequence of one or more keys to press
69
- *
70
- * @returns {PressBuilder}
71
- */
72
- static the(...keys) {
73
- return new Press(KeySequence.of(keys));
74
- }
75
- in(field /* | Question<AlertPromise> | AlertPromise */) {
76
- return new PressKeyInField(this.keys, field);
77
- }
78
- /**
79
- * @desc
80
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
81
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
82
- *
83
- * @param {UsesAbilities & AnswersQuestions} actor
84
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
85
- *
86
- * @returns {PromiseLike<void>}
87
- *
88
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
89
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
90
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
91
- */
92
- async performAs(actor) {
93
- const keys = await actor.answer(this.keys);
94
- return abilities_1.BrowseTheWeb.as(actor).sendKeys(keys);
95
- }
96
- }
97
- exports.Press = Press;
98
- class PressKeyInField extends WebElementInteraction_1.WebElementInteraction {
99
- /**
100
- * @param {Answerable<Array<Key | string>>} keys
101
- * A sequence of one or more keys to press
102
- *
103
- * @param {Answerable<Element<'async'>>} field
104
- * Web element to send the keys to
105
- */
106
- constructor(keys, field /* todo | Question<AlertPromise> | AlertPromise */) {
107
- super((0, io_1.formatted) `#actor presses ${keys} in ${field}`);
108
- this.keys = keys;
109
- this.field = field;
110
- }
111
- async performAs(actor) {
112
- const field = await this.resolve(actor, this.field);
113
- const keys = await actor.answer(this.keys);
114
- await abilities_1.BrowseTheWeb.as(actor).browser.execute(
115
- /* istanbul ignore next */
116
- function focus(element) {
117
- element.focus();
118
- }, field);
119
- return abilities_1.BrowseTheWeb.as(actor).sendKeys(keys);
120
- }
121
- }
122
- /**
123
- * @package
124
- */
125
- class KeySequence extends core_1.Question {
126
- constructor(keys) {
127
- super(KeySequence.describe(keys));
128
- this.keys = keys;
129
- }
130
- static of(keys) {
131
- return new KeySequence(keys);
132
- }
133
- answeredBy(actor) {
134
- return Promise.all(this.keys.map(part => actor.answer(part))).then(keys => keys.flat().filter(key => !!key));
135
- }
136
- static describe(keys) {
137
- const prefix = keys.length === 1 ? 'key' : 'keys';
138
- const description = keys.reduce((acc, key, index) => {
139
- const separator = input_1.Key.isKey(key) && key.isModifier
140
- ? '-'
141
- : acc.separator;
142
- return {
143
- description: index === 0
144
- ? `${key}`
145
- : `${acc.description}${acc.separator}${key}`,
146
- separator,
147
- };
148
- }, { description: '', separator: ', ' }).description;
149
- return `${prefix} ${description}`;
150
- }
151
- }
152
- //# sourceMappingURL=Press.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Press.js","sourceRoot":"","sources":["../../../src/screenplay/interactions/Press.ts"],"names":[],"mappings":"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"}