@serenity-js/protractor 2.32.5 → 3.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/lib/index.d.ts +0 -2
  3. package/lib/index.js +0 -2
  4. package/lib/index.js.map +1 -1
  5. package/lib/screenplay/abilities/{BrowseTheWeb.d.ts → BrowseTheWebWithProtractor.d.ts} +52 -160
  6. package/lib/screenplay/abilities/{BrowseTheWeb.js → BrowseTheWebWithProtractor.js} +169 -218
  7. package/lib/screenplay/abilities/BrowseTheWebWithProtractor.js.map +1 -0
  8. package/lib/screenplay/abilities/index.d.ts +1 -1
  9. package/lib/screenplay/abilities/index.js +1 -1
  10. package/lib/screenplay/abilities/index.js.map +1 -1
  11. package/lib/screenplay/index.d.ts +1 -0
  12. package/lib/screenplay/index.js +1 -0
  13. package/lib/screenplay/index.js.map +1 -1
  14. package/lib/screenplay/interactions/UseAngular.js +2 -2
  15. package/lib/screenplay/interactions/UseAngular.js.map +1 -1
  16. package/lib/screenplay/interactions/index.d.ts +0 -19
  17. package/lib/screenplay/interactions/index.js +0 -19
  18. package/lib/screenplay/interactions/index.js.map +1 -1
  19. package/lib/screenplay/models/ProtractorCookie.d.ts +11 -0
  20. package/lib/screenplay/models/ProtractorCookie.js +39 -0
  21. package/lib/screenplay/models/ProtractorCookie.js.map +1 -0
  22. package/lib/screenplay/models/ProtractorModalDialog.d.ts +11 -0
  23. package/lib/screenplay/models/ProtractorModalDialog.js +43 -0
  24. package/lib/screenplay/models/ProtractorModalDialog.js.map +1 -0
  25. package/lib/screenplay/models/ProtractorNativeElementRoot.d.ts +5 -0
  26. package/lib/screenplay/{interactions/EnterBuilder.js → models/ProtractorNativeElementRoot.js} +1 -1
  27. package/lib/screenplay/models/ProtractorNativeElementRoot.js.map +1 -0
  28. package/lib/screenplay/models/ProtractorPage.d.ts +24 -0
  29. package/lib/screenplay/models/ProtractorPage.js +92 -0
  30. package/lib/screenplay/models/ProtractorPage.js.map +1 -0
  31. package/lib/screenplay/models/ProtractorPageElement.d.ts +23 -0
  32. package/lib/screenplay/models/ProtractorPageElement.js +112 -0
  33. package/lib/screenplay/models/ProtractorPageElement.js.map +1 -0
  34. package/lib/screenplay/models/ProtractorPageElements.d.ts +16 -0
  35. package/lib/screenplay/models/ProtractorPageElements.js +62 -0
  36. package/lib/screenplay/models/ProtractorPageElements.js.map +1 -0
  37. package/lib/screenplay/models/index.d.ts +6 -0
  38. package/lib/{expectations → screenplay/models}/index.js +6 -6
  39. package/lib/screenplay/models/index.js.map +1 -0
  40. package/lib/{promiseOf.d.ts → screenplay/promised.d.ts} +1 -1
  41. package/lib/{promiseOf.js → screenplay/promised.js} +4 -4
  42. package/lib/screenplay/promised.js.map +1 -0
  43. package/lib/screenplay/promisedWebElement.d.ts +11 -0
  44. package/lib/screenplay/promisedWebElement.js +27 -0
  45. package/lib/screenplay/promisedWebElement.js.map +1 -0
  46. package/lib/screenplay/questions/ProtractorParam.d.ts +24 -29
  47. package/lib/screenplay/questions/ProtractorParam.js +26 -33
  48. package/lib/screenplay/questions/ProtractorParam.js.map +1 -1
  49. package/lib/screenplay/questions/index.d.ts +0 -13
  50. package/lib/screenplay/questions/index.js +0 -16
  51. package/lib/screenplay/questions/index.js.map +1 -1
  52. package/package.json +15 -17
  53. package/src/index.ts +0 -2
  54. package/src/screenplay/abilities/{BrowseTheWeb.ts → BrowseTheWebWithProtractor.ts} +216 -241
  55. package/src/screenplay/abilities/index.ts +1 -1
  56. package/src/screenplay/index.ts +1 -0
  57. package/src/screenplay/interactions/UseAngular.ts +3 -3
  58. package/src/screenplay/interactions/index.ts +0 -19
  59. package/src/screenplay/models/ProtractorCookie.ts +41 -0
  60. package/src/screenplay/models/ProtractorModalDialog.ts +49 -0
  61. package/src/screenplay/models/ProtractorNativeElementRoot.ts +6 -0
  62. package/src/screenplay/models/ProtractorPage.ts +116 -0
  63. package/src/screenplay/models/ProtractorPageElement.ts +167 -0
  64. package/src/screenplay/models/ProtractorPageElements.ts +86 -0
  65. package/src/screenplay/models/index.ts +7 -0
  66. package/src/{promiseOf.ts → screenplay/promised.ts} +1 -1
  67. package/src/screenplay/promisedWebElement.ts +28 -0
  68. package/src/screenplay/questions/ProtractorParam.ts +29 -38
  69. package/src/screenplay/questions/index.ts +0 -13
  70. package/lib/expectations/ElementFinderExpectation.d.ts +0 -11
  71. package/lib/expectations/ElementFinderExpectation.js +0 -24
  72. package/lib/expectations/ElementFinderExpectation.js.map +0 -1
  73. package/lib/expectations/index.d.ts +0 -6
  74. package/lib/expectations/index.js.map +0 -1
  75. package/lib/expectations/isActive.d.ts +0 -13
  76. package/lib/expectations/isActive.js +0 -19
  77. package/lib/expectations/isActive.js.map +0 -1
  78. package/lib/expectations/isClickable.d.ts +0 -13
  79. package/lib/expectations/isClickable.js +0 -22
  80. package/lib/expectations/isClickable.js.map +0 -1
  81. package/lib/expectations/isEnabled.d.ts +0 -13
  82. package/lib/expectations/isEnabled.js +0 -19
  83. package/lib/expectations/isEnabled.js.map +0 -1
  84. package/lib/expectations/isPresent.d.ts +0 -14
  85. package/lib/expectations/isPresent.js +0 -20
  86. package/lib/expectations/isPresent.js.map +0 -1
  87. package/lib/expectations/isSelected.d.ts +0 -13
  88. package/lib/expectations/isSelected.js +0 -22
  89. package/lib/expectations/isSelected.js.map +0 -1
  90. package/lib/expectations/isVisible.d.ts +0 -13
  91. package/lib/expectations/isVisible.js +0 -25
  92. package/lib/expectations/isVisible.js.map +0 -1
  93. package/lib/promiseOf.js.map +0 -1
  94. package/lib/screenplay/abilities/BrowseTheWeb.js.map +0 -1
  95. package/lib/screenplay/interactions/Accept.d.ts +0 -81
  96. package/lib/screenplay/interactions/Accept.js +0 -95
  97. package/lib/screenplay/interactions/Accept.js.map +0 -1
  98. package/lib/screenplay/interactions/Clear.d.ts +0 -88
  99. package/lib/screenplay/interactions/Clear.js +0 -121
  100. package/lib/screenplay/interactions/Clear.js.map +0 -1
  101. package/lib/screenplay/interactions/Click.d.ts +0 -81
  102. package/lib/screenplay/interactions/Click.js +0 -95
  103. package/lib/screenplay/interactions/Click.js.map +0 -1
  104. package/lib/screenplay/interactions/Close.d.ts +0 -89
  105. package/lib/screenplay/interactions/Close.js +0 -169
  106. package/lib/screenplay/interactions/Close.js.map +0 -1
  107. package/lib/screenplay/interactions/DeleteCookies.d.ts +0 -72
  108. package/lib/screenplay/interactions/DeleteCookies.js +0 -149
  109. package/lib/screenplay/interactions/DeleteCookies.js.map +0 -1
  110. package/lib/screenplay/interactions/Dismiss.d.ts +0 -85
  111. package/lib/screenplay/interactions/Dismiss.js +0 -99
  112. package/lib/screenplay/interactions/Dismiss.js.map +0 -1
  113. package/lib/screenplay/interactions/DoubleClick.d.ts +0 -99
  114. package/lib/screenplay/interactions/DoubleClick.js +0 -121
  115. package/lib/screenplay/interactions/DoubleClick.js.map +0 -1
  116. package/lib/screenplay/interactions/Enter.d.ts +0 -81
  117. package/lib/screenplay/interactions/Enter.js +0 -96
  118. package/lib/screenplay/interactions/Enter.js.map +0 -1
  119. package/lib/screenplay/interactions/EnterBuilder.d.ts +0 -27
  120. package/lib/screenplay/interactions/EnterBuilder.js.map +0 -1
  121. package/lib/screenplay/interactions/ExecuteScript.d.ts +0 -171
  122. package/lib/screenplay/interactions/ExecuteScript.js +0 -291
  123. package/lib/screenplay/interactions/ExecuteScript.js.map +0 -1
  124. package/lib/screenplay/interactions/Hover.d.ts +0 -86
  125. package/lib/screenplay/interactions/Hover.js +0 -103
  126. package/lib/screenplay/interactions/Hover.js.map +0 -1
  127. package/lib/screenplay/interactions/Navigate.d.ts +0 -149
  128. package/lib/screenplay/interactions/Navigate.js +0 -345
  129. package/lib/screenplay/interactions/Navigate.js.map +0 -1
  130. package/lib/screenplay/interactions/Press.d.ts +0 -90
  131. package/lib/screenplay/interactions/Press.js +0 -127
  132. package/lib/screenplay/interactions/Press.js.map +0 -1
  133. package/lib/screenplay/interactions/PressBuilder.d.ts +0 -27
  134. package/lib/screenplay/interactions/PressBuilder.js +0 -3
  135. package/lib/screenplay/interactions/PressBuilder.js.map +0 -1
  136. package/lib/screenplay/interactions/ResizeBrowserWindow.d.ts +0 -69
  137. package/lib/screenplay/interactions/ResizeBrowserWindow.js +0 -144
  138. package/lib/screenplay/interactions/ResizeBrowserWindow.js.map +0 -1
  139. package/lib/screenplay/interactions/RightClick.d.ts +0 -97
  140. package/lib/screenplay/interactions/RightClick.js +0 -113
  141. package/lib/screenplay/interactions/RightClick.js.map +0 -1
  142. package/lib/screenplay/interactions/Scroll.d.ts +0 -83
  143. package/lib/screenplay/interactions/Scroll.js +0 -98
  144. package/lib/screenplay/interactions/Scroll.js.map +0 -1
  145. package/lib/screenplay/interactions/Select.d.ts +0 -212
  146. package/lib/screenplay/interactions/Select.js +0 -342
  147. package/lib/screenplay/interactions/Select.js.map +0 -1
  148. package/lib/screenplay/interactions/SelectBuilder.d.ts +0 -33
  149. package/lib/screenplay/interactions/SelectBuilder.js +0 -3
  150. package/lib/screenplay/interactions/SelectBuilder.js.map +0 -1
  151. package/lib/screenplay/interactions/Switch.d.ts +0 -210
  152. package/lib/screenplay/interactions/Switch.js +0 -345
  153. package/lib/screenplay/interactions/Switch.js.map +0 -1
  154. package/lib/screenplay/interactions/TakeScreenshot.d.ts +0 -67
  155. package/lib/screenplay/interactions/TakeScreenshot.js +0 -86
  156. package/lib/screenplay/interactions/TakeScreenshot.js.map +0 -1
  157. package/lib/screenplay/interactions/Wait.d.ts +0 -147
  158. package/lib/screenplay/interactions/Wait.js +0 -247
  159. package/lib/screenplay/interactions/Wait.js.map +0 -1
  160. package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -33
  161. package/lib/screenplay/interactions/WaitBuilder.js +0 -3
  162. package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
  163. package/lib/screenplay/questions/Attribute.d.ts +0 -29
  164. package/lib/screenplay/questions/Attribute.js +0 -56
  165. package/lib/screenplay/questions/Attribute.js.map +0 -1
  166. package/lib/screenplay/questions/Browser.d.ts +0 -47
  167. package/lib/screenplay/questions/Browser.js +0 -55
  168. package/lib/screenplay/questions/Browser.js.map +0 -1
  169. package/lib/screenplay/questions/CSSClasses.d.ts +0 -94
  170. package/lib/screenplay/questions/CSSClasses.js +0 -118
  171. package/lib/screenplay/questions/CSSClasses.js.map +0 -1
  172. package/lib/screenplay/questions/Cookie.d.ts +0 -9
  173. package/lib/screenplay/questions/Cookie.js +0 -65
  174. package/lib/screenplay/questions/Cookie.js.map +0 -1
  175. package/lib/screenplay/questions/LastScriptExecution.d.ts +0 -14
  176. package/lib/screenplay/questions/LastScriptExecution.js +0 -22
  177. package/lib/screenplay/questions/LastScriptExecution.js.map +0 -1
  178. package/lib/screenplay/questions/ModalDialog.d.ts +0 -120
  179. package/lib/screenplay/questions/ModalDialog.js +0 -142
  180. package/lib/screenplay/questions/ModalDialog.js.map +0 -1
  181. package/lib/screenplay/questions/Pick.d.ts +0 -72
  182. package/lib/screenplay/questions/Pick.js +0 -254
  183. package/lib/screenplay/questions/Pick.js.map +0 -1
  184. package/lib/screenplay/questions/Selected.d.ts +0 -185
  185. package/lib/screenplay/questions/Selected.js +0 -254
  186. package/lib/screenplay/questions/Selected.js.map +0 -1
  187. package/lib/screenplay/questions/Value.d.ts +0 -47
  188. package/lib/screenplay/questions/Value.js +0 -67
  189. package/lib/screenplay/questions/Value.js.map +0 -1
  190. package/lib/screenplay/questions/Website.d.ts +0 -15
  191. package/lib/screenplay/questions/Website.js +0 -25
  192. package/lib/screenplay/questions/Website.js.map +0 -1
  193. package/lib/screenplay/questions/Window.d.ts +0 -23
  194. package/lib/screenplay/questions/Window.js +0 -28
  195. package/lib/screenplay/questions/Window.js.map +0 -1
  196. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.d.ts +0 -89
  197. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js +0 -138
  198. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js.map +0 -1
  199. package/lib/screenplay/questions/lists/index.d.ts +0 -1
  200. package/lib/screenplay/questions/lists/index.js +0 -14
  201. package/lib/screenplay/questions/lists/index.js.map +0 -1
  202. package/lib/screenplay/questions/targets/Target.d.ts +0 -168
  203. package/lib/screenplay/questions/targets/Target.js +0 -190
  204. package/lib/screenplay/questions/targets/Target.js.map +0 -1
  205. package/lib/screenplay/questions/targets/TargetElement.d.ts +0 -50
  206. package/lib/screenplay/questions/targets/TargetElement.js +0 -62
  207. package/lib/screenplay/questions/targets/TargetElement.js.map +0 -1
  208. package/lib/screenplay/questions/targets/TargetElements.d.ts +0 -102
  209. package/lib/screenplay/questions/targets/TargetElements.js +0 -124
  210. package/lib/screenplay/questions/targets/TargetElements.js.map +0 -1
  211. package/lib/screenplay/questions/targets/TargetNestedElement.d.ts +0 -49
  212. package/lib/screenplay/questions/targets/TargetNestedElement.js +0 -61
  213. package/lib/screenplay/questions/targets/TargetNestedElement.js.map +0 -1
  214. package/lib/screenplay/questions/targets/TargetNestedElements.d.ts +0 -101
  215. package/lib/screenplay/questions/targets/TargetNestedElements.js +0 -123
  216. package/lib/screenplay/questions/targets/TargetNestedElements.js.map +0 -1
  217. package/lib/screenplay/questions/targets/builders.d.ts +0 -8
  218. package/lib/screenplay/questions/targets/builders.js +0 -3
  219. package/lib/screenplay/questions/targets/builders.js.map +0 -1
  220. package/lib/screenplay/questions/targets/index.d.ts +0 -5
  221. package/lib/screenplay/questions/targets/index.js +0 -18
  222. package/lib/screenplay/questions/targets/index.js.map +0 -1
  223. package/lib/screenplay/questions/targets/override.d.ts +0 -7
  224. package/lib/screenplay/questions/targets/override.js +0 -21
  225. package/lib/screenplay/questions/targets/override.js.map +0 -1
  226. package/lib/screenplay/questions/text/Text.d.ts +0 -41
  227. package/lib/screenplay/questions/text/Text.js +0 -50
  228. package/lib/screenplay/questions/text/Text.js.map +0 -1
  229. package/lib/screenplay/questions/text/TextOfMultipleElements.d.ts +0 -23
  230. package/lib/screenplay/questions/text/TextOfMultipleElements.js +0 -37
  231. package/lib/screenplay/questions/text/TextOfMultipleElements.js.map +0 -1
  232. package/lib/screenplay/questions/text/TextOfSingleElement.d.ts +0 -23
  233. package/lib/screenplay/questions/text/TextOfSingleElement.js +0 -35
  234. package/lib/screenplay/questions/text/TextOfSingleElement.js.map +0 -1
  235. package/lib/screenplay/questions/text/index.d.ts +0 -1
  236. package/lib/screenplay/questions/text/index.js +0 -14
  237. package/lib/screenplay/questions/text/index.js.map +0 -1
  238. package/lib/screenplay/withAnswerOf.d.ts +0 -8
  239. package/lib/screenplay/withAnswerOf.js +0 -18
  240. package/lib/screenplay/withAnswerOf.js.map +0 -1
  241. package/lib/stage/crew/index.d.ts +0 -1
  242. package/lib/stage/crew/index.js +0 -14
  243. package/lib/stage/crew/index.js.map +0 -1
  244. package/lib/stage/crew/photographer/Photographer.d.ts +0 -83
  245. package/lib/stage/crew/photographer/Photographer.js +0 -102
  246. package/lib/stage/crew/photographer/Photographer.js.map +0 -1
  247. package/lib/stage/crew/photographer/index.d.ts +0 -2
  248. package/lib/stage/crew/photographer/index.js +0 -15
  249. package/lib/stage/crew/photographer/index.js.map +0 -1
  250. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +0 -28
  251. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +0 -65
  252. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +0 -1
  253. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +0 -18
  254. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +0 -30
  255. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +0 -1
  256. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +0 -17
  257. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +0 -28
  258. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +0 -1
  259. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +0 -19
  260. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +0 -28
  261. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +0 -1
  262. package/lib/stage/crew/photographer/strategies/index.d.ts +0 -4
  263. package/lib/stage/crew/photographer/strategies/index.js +0 -17
  264. package/lib/stage/crew/photographer/strategies/index.js.map +0 -1
  265. package/lib/stage/index.d.ts +0 -1
  266. package/lib/stage/index.js +0 -14
  267. package/lib/stage/index.js.map +0 -1
  268. package/src/expectations/ElementFinderExpectation.ts +0 -29
  269. package/src/expectations/index.ts +0 -6
  270. package/src/expectations/isActive.ts +0 -24
  271. package/src/expectations/isClickable.ts +0 -20
  272. package/src/expectations/isEnabled.ts +0 -18
  273. package/src/expectations/isPresent.ts +0 -19
  274. package/src/expectations/isSelected.ts +0 -23
  275. package/src/expectations/isVisible.ts +0 -27
  276. package/src/screenplay/interactions/Accept.ts +0 -95
  277. package/src/screenplay/interactions/Clear.ts +0 -130
  278. package/src/screenplay/interactions/Click.ts +0 -96
  279. package/src/screenplay/interactions/Close.ts +0 -184
  280. package/src/screenplay/interactions/DeleteCookies.ts +0 -154
  281. package/src/screenplay/interactions/Dismiss.ts +0 -99
  282. package/src/screenplay/interactions/DoubleClick.ts +0 -124
  283. package/src/screenplay/interactions/Enter.ts +0 -104
  284. package/src/screenplay/interactions/EnterBuilder.ts +0 -29
  285. package/src/screenplay/interactions/ExecuteScript.ts +0 -325
  286. package/src/screenplay/interactions/Hover.ts +0 -106
  287. package/src/screenplay/interactions/Navigate.ts +0 -363
  288. package/src/screenplay/interactions/Press.ts +0 -137
  289. package/src/screenplay/interactions/PressBuilder.ts +0 -29
  290. package/src/screenplay/interactions/ResizeBrowserWindow.ts +0 -148
  291. package/src/screenplay/interactions/RightClick.ts +0 -114
  292. package/src/screenplay/interactions/Scroll.ts +0 -99
  293. package/src/screenplay/interactions/Select.ts +0 -402
  294. package/src/screenplay/interactions/SelectBuilder.ts +0 -35
  295. package/src/screenplay/interactions/Switch.ts +0 -393
  296. package/src/screenplay/interactions/TakeScreenshot.ts +0 -89
  297. package/src/screenplay/interactions/Wait.ts +0 -267
  298. package/src/screenplay/interactions/WaitBuilder.ts +0 -35
  299. package/src/screenplay/questions/Attribute.ts +0 -67
  300. package/src/screenplay/questions/Browser.ts +0 -55
  301. package/src/screenplay/questions/CSSClasses.ts +0 -121
  302. package/src/screenplay/questions/Cookie.ts +0 -70
  303. package/src/screenplay/questions/LastScriptExecution.ts +0 -21
  304. package/src/screenplay/questions/ModalDialog.ts +0 -149
  305. package/src/screenplay/questions/Pick.ts +0 -334
  306. package/src/screenplay/questions/Selected.ts +0 -268
  307. package/src/screenplay/questions/Value.ts +0 -73
  308. package/src/screenplay/questions/Website.ts +0 -27
  309. package/src/screenplay/questions/Window.ts +0 -29
  310. package/src/screenplay/questions/lists/ElementArrayFinderListAdapter.ts +0 -158
  311. package/src/screenplay/questions/lists/index.ts +0 -1
  312. package/src/screenplay/questions/targets/Target.ts +0 -198
  313. package/src/screenplay/questions/targets/TargetElement.ts +0 -70
  314. package/src/screenplay/questions/targets/TargetElements.ts +0 -142
  315. package/src/screenplay/questions/targets/TargetNestedElement.ts +0 -71
  316. package/src/screenplay/questions/targets/TargetNestedElements.ts +0 -142
  317. package/src/screenplay/questions/targets/builders.ts +0 -10
  318. package/src/screenplay/questions/targets/index.ts +0 -5
  319. package/src/screenplay/questions/targets/override.ts +0 -17
  320. package/src/screenplay/questions/text/Text.ts +0 -55
  321. package/src/screenplay/questions/text/TextOfMultipleElements.ts +0 -40
  322. package/src/screenplay/questions/text/TextOfSingleElement.ts +0 -37
  323. package/src/screenplay/questions/text/index.ts +0 -1
  324. package/src/screenplay/withAnswerOf.ts +0 -19
  325. package/src/stage/crew/index.ts +0 -1
  326. package/src/stage/crew/photographer/Photographer.ts +0 -108
  327. package/src/stage/crew/photographer/index.ts +0 -2
  328. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +0 -102
  329. package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +0 -28
  330. package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +0 -26
  331. package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +0 -26
  332. package/src/stage/crew/photographer/strategies/index.ts +0 -4
  333. package/src/stage/index.ts +0 -1
@@ -1,393 +0,0 @@
1
- import { Activity, Answerable, AnswersQuestions, Interaction, LogicError, PerformsActivities, Task, UsesAbilities } from '@serenity-js/core';
2
- import { ElementFinder } from 'protractor';
3
- import { WebElementPromise } from 'selenium-webdriver';
4
-
5
- import { BrowseTheWeb } from '../abilities';
6
-
7
- /**
8
- * @desc
9
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor}
10
- * to switch to a different [frame](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/frame),
11
- * [inline frame](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe),
12
- * or browser window/tab.
13
- *
14
- * @example <caption>Lean Page Object describing a login form, embedded in an iframe</caption>
15
- *
16
- * import { Target } from '@serenity-js/protractor';
17
- * import { by } from 'protractor';
18
- *
19
- * class LoginForm {
20
- * static iframe = Target.the('login form').located(by.tagName('iframe'));
21
- * static usernameField = Target.the('username field').located(by.css('[data-test="username"]'));
22
- * static passwordField = Target.the('password field').located(by.css('[data-test="password"]'));
23
- * static submitButton = Target.the('submit button').located(by.css(`button[type='submit']`));
24
- * }
25
- *
26
- * @example <caption>Switch to an iframe and back</caption>
27
- *
28
- * import { actorCalled } from '@serenity-js/core';
29
- * import { BrowseTheWeb, Switch, Enter, Click } from '@serenity-js/protractor';
30
- * import { protractor } from 'protractor';
31
- *
32
- * actorCalled('Francesca')
33
- * .whoCan(BrowseTheWeb.using(protractor.browser))
34
- * .attemptsTo(
35
- * Switch.toFrame(LoginForm.iframe),
36
- *
37
- * Enter.theValue('francesca@example.org').into(LoginForm.usernameField),
38
- * Enter.theValue('correct-horse-battery-staple').into(LoginForm.passwordField),
39
- * Click.on(LoginForm.submitButton),
40
- *
41
- * Switch.toParentFrame(),
42
- * );
43
- *
44
- * @example <caption>Perform activities in the context of an iframe</caption>
45
- *
46
- * import { actorCalled } from '@serenity-js/core';
47
- * import { BrowseTheWeb, Switch, Enter, Click } from '@serenity-js/protractor';
48
- * import { protractor } from 'protractor';
49
- *
50
- * actorCalled('Francesca')
51
- * .whoCan(BrowseTheWeb.using(protractor.browser))
52
- * .attemptsTo(
53
- * Switch.toFrame(LoginForm.iframe).and(
54
- * Enter.theValue('francesca@example.org').into(LoginForm.usernameField),
55
- * Enter.theValue('correct-horse-battery-staple').into(LoginForm.passwordField),
56
- * Click.on(LoginForm.submitButton),
57
- * ),
58
- * // Note that Switch.toParentFrame() is invoked automatically
59
- * );
60
- *
61
- * @example <caption>Switch to a new window/tab and back</caption>
62
- *
63
- * import { actorCalled } from '@serenity-js/core';
64
- * import { BrowseTheWeb, Switch, Close } from '@serenity-js/protractor';
65
- * import { protractor } from 'protractor';
66
- *
67
- * actorCalled('Francesca')
68
- * .whoCan(BrowseTheWeb.using(protractor.browser))
69
- * .attemptsTo(
70
- * Switch.toNewWindow(), // or: Switch.toWindow(...)
71
- *
72
- * // perform some activities in the context of the new window
73
- *
74
- * Close.currentWindow(),
75
- *
76
- * Switch.toOriginalWindow(),
77
- * );
78
- *
79
- * @example <caption>Perform activities in the context of a different window/tab</caption>
80
- *
81
- * import { actorCalled } from '@serenity-js/core';
82
- * import { BrowseTheWeb, Switch, Close } from '@serenity-js/protractor';
83
- * import { protractor } from 'protractor';
84
- *
85
- * actorCalled('Francesca')
86
- * .whoCan(BrowseTheWeb.using(protractor.browser))
87
- * .attemptsTo(
88
- * Switch.toNewWindow().and(
89
- * // perform some activities in the context of the new window
90
- *
91
- * Close.currentWindow()
92
- * ),
93
- *
94
- * // Note that Switch.toOriginalWindow() is invoked automatically
95
- * );
96
- *
97
- * @see {@link Close}
98
- * @see {@link BrowseTheWeb}
99
- */
100
- export class Switch {
101
-
102
- /**
103
- * @desc
104
- * Switches the current [browsing context](https://w3c.github.io/webdriver/#dfn-current-browsing-context)
105
- * for future commands to a [frame](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/frame)
106
- * or an [inline frame](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe)
107
- * identified by its name, index or `Question<ElementFinder>`.
108
- *
109
- * @param {Answerable<ElementFinder | number | string>} targetOrIndex
110
- *
111
- * @returns {SwitchToFrame}
112
- *
113
- * @see {@link Switch.toParentFrame}
114
- * @see {@link Switch.toDefaultContent}
115
- * @see {@link Target}
116
- */
117
- static toFrame(targetOrIndex: Answerable<ElementFinder | number | string>): SwitchToFrame {
118
- return new SwitchToFrame(targetOrIndex);
119
- }
120
-
121
- /**
122
- * @desc
123
- * Sets the current [browsing context](https://w3c.github.io/webdriver/#dfn-current-browsing-context)
124
- * for future commands to the parent of the current browsing context,
125
- * i.e. an `iframe` in which the current `iframe` is nested.
126
- *
127
- * If the current context is the top-level browsing context, the context remains unchanged.
128
- *
129
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
130
- *
131
- * @see {@link Switch.toFrame}
132
- * @see https://w3c.github.io/webdriver/#switch-to-parent-frame
133
- * @see https://w3c.github.io/webdriver/#dfn-current-browsing-context
134
- */
135
- static toParentFrame(): Interaction {
136
- return new SwitchToParentFrame();
137
- }
138
-
139
- /**
140
- * @desc
141
- * Switches the current [browsing context](https://w3c.github.io/webdriver/#dfn-current-browsing-context)
142
- * for future commands to the first frame on the page, or the main document
143
- * when a page contains [`iframe`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe)s.
144
- *
145
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
146
- *
147
- * @see {@link Switch.toFrame}
148
- */
149
- static toDefaultContent(): Interaction {
150
- return new SwitchToDefaultContent();
151
- }
152
-
153
- /**
154
- * @desc
155
- * Switches the current [browsing context](https://w3c.github.io/webdriver/#dfn-current-browsing-context)
156
- * for future commands to a browser tab/window identified by its
157
- * name, index or [window handle](https://developer.mozilla.org/en-US/docs/Web/WebDriver/Commands/GetWindowHandles).
158
- *
159
- * @param {Answerable<string | number>} nameOrHandleOrIndex
160
- * @returns {SwitchToWindow}
161
- */
162
- static toWindow(nameOrHandleOrIndex: Answerable<string | number>): SwitchToWindow {
163
- return new SwitchToWindow(nameOrHandleOrIndex);
164
- }
165
-
166
- /**
167
- * @desc
168
- * Switches the current [browsing context](https://w3c.github.io/webdriver/#dfn-current-browsing-context)
169
- * for future commands to the most recently opened browser tab/window.
170
- *
171
- * **Please note** that this behaviour might vary in some browsers if there are more than two windows opened
172
- * at the same time.
173
- *
174
- * @returns {SwitchToNewWindow}
175
- */
176
- static toNewWindow(): SwitchToNewWindow {
177
- return new SwitchToNewWindow();
178
- }
179
-
180
- /**
181
- * @desc
182
- * Switches the current [browsing context](https://w3c.github.io/webdriver/#dfn-current-browsing-context)
183
- * for future commands to the original window used when the {@link @serenity-js/core/lib/screenplay/actor~Actor}
184
- * performed an interaction to {@link Navigate}.
185
- *
186
- * **Please note** that this behaviour might vary in some browsers if there are more than two windows opened
187
- * at the same time, as window handles might be ordered alphabetically instead of the order in which they were created.
188
- *
189
- * @returns {SwitchToOriginalWindow}
190
- */
191
- static toOriginalWindow(): SwitchToOriginalWindow {
192
- return new SwitchToOriginalWindow();
193
- }
194
- }
195
-
196
- /**
197
- * @package
198
- */
199
- class SwitchToFrame extends Interaction {
200
- constructor(private readonly targetOrIndex: Answerable<ElementFinder | number | string>) {
201
- super();
202
- }
203
-
204
- and(...activities: Activity[]): Task {
205
- return new SwitchToFrameAndPerformActivities(this.targetOrIndex, activities);
206
- }
207
-
208
- performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
209
- return actor.answer(this.targetOrIndex)
210
- .then((targetOrIndex: ElementFinder) =>
211
- BrowseTheWeb.as(actor).switchToFrame(
212
- targetOrIndex instanceof ElementFinder
213
- ? targetOrIndex.getWebElement() as unknown as WebElementPromise // https://github.com/angular/protractor/issues/1846#issuecomment-82634739
214
- : targetOrIndex,
215
- ),
216
- );
217
- }
218
-
219
- toString(): string {
220
- return `#actor switches to frame: ${ this.targetOrIndex }`;
221
- }
222
- }
223
-
224
- /**
225
- * @package
226
- */
227
- class SwitchToFrameAndPerformActivities extends Task {
228
- constructor(
229
- private readonly targetOrIndex: Answerable<ElementFinder | number | string>,
230
- private readonly activities: Activity[]
231
- ) {
232
- super();
233
- }
234
-
235
- performAs(actor: PerformsActivities): PromiseLike<void> {
236
- return actor.attemptsTo(
237
- new SwitchToFrame(this.targetOrIndex),
238
- ...this.activities,
239
- new SwitchToParentFrame()
240
- )
241
- }
242
-
243
- toString(): string {
244
- return `#actor switches to frame: ${ this.targetOrIndex }`;
245
- }
246
- }
247
-
248
- /**
249
- * @package
250
- */
251
- class SwitchToParentFrame extends Interaction {
252
- performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
253
- return BrowseTheWeb.as(actor).switchToParentFrame();
254
- }
255
-
256
- toString(): string {
257
- return `#actor switches to parent frame`;
258
- }
259
- }
260
-
261
- /**
262
- * @package
263
- */
264
- class SwitchToDefaultContent extends Interaction {
265
- performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
266
- return BrowseTheWeb.as(actor).switchToDefaultContent();
267
- }
268
-
269
- toString(): string {
270
- return `#actor switches to default content`;
271
- }
272
- }
273
-
274
- /**
275
- * @package
276
- */
277
- class SwitchToWindow extends Interaction {
278
- constructor(private readonly nameOrHandleOrIndex: Answerable<string | number>) {
279
- super();
280
- }
281
-
282
- and(...activities: Activity[]): Task {
283
- return new SwitchToWindowAndPerformActivities(this.nameOrHandleOrIndex, activities);
284
- }
285
-
286
- performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
287
- return actor.answer(this.nameOrHandleOrIndex).then(index => BrowseTheWeb.as(actor).switchToWindow(index));
288
- }
289
-
290
- toString(): string {
291
- return `#actor switches to window: ${this.nameOrHandleOrIndex}`;
292
- }
293
- }
294
-
295
- /**
296
- * @package
297
- */
298
- class SwitchToWindowAndPerformActivities extends Task {
299
- constructor(
300
- private readonly nameOrHandleOrIndex: Answerable<string | number>,
301
- private readonly activities: Activity[],
302
- ) {
303
- super();
304
- }
305
-
306
- performAs(actor: PerformsActivities & UsesAbilities): PromiseLike<void> {
307
- return BrowseTheWeb.as(actor).getCurrentWindowHandle()
308
- .then(currentWindow => {
309
- return actor.attemptsTo(
310
- new SwitchToWindow(this.nameOrHandleOrIndex),
311
- ...this.activities,
312
- new SwitchToWindow(currentWindow),
313
- );
314
- });
315
- }
316
-
317
- toString(): string {
318
- return `#actor switches to window: ${ this.nameOrHandleOrIndex }`;
319
- }
320
- }
321
-
322
- /**
323
- * @package
324
- */
325
- class SwitchToNewWindow extends Interaction {
326
- constructor() {
327
- super();
328
- }
329
-
330
- and(...activities: Activity[]): Task {
331
- return new SwitchToNewWindowAndPerformActivities(activities);
332
- }
333
-
334
- performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
335
- return Promise.all([
336
- BrowseTheWeb.as(actor).getCurrentWindowHandle(),
337
- BrowseTheWeb.as(actor).getAllWindowHandles(),
338
- ])
339
- .then(([ currentHandle, handles ]: [ string, string[] ]) => handles.filter(handle => handle !== currentHandle))
340
- .then(handles => {
341
- if (handles.length === 0) {
342
- throw new LogicError(`No new window has been opened to switch to`)
343
- }
344
-
345
- return BrowseTheWeb.as(actor).switchToWindow(handles[handles.length - 1]);
346
- });
347
- }
348
-
349
- toString(): string {
350
- return `#actor switches to the new browser window`;
351
- }
352
- }
353
-
354
- /**
355
- * @package
356
- */
357
- class SwitchToNewWindowAndPerformActivities extends Task {
358
- constructor(private readonly activities: Activity[]) {
359
- super();
360
- }
361
-
362
- performAs(actor: PerformsActivities & UsesAbilities): PromiseLike<void> {
363
- return BrowseTheWeb.as(actor).getCurrentWindowHandle()
364
- .then(currentWindow => {
365
- return actor.attemptsTo(
366
- new SwitchToNewWindow(),
367
- ...this.activities,
368
- new SwitchToWindow(currentWindow),
369
- );
370
- });
371
- }
372
-
373
- toString(): string {
374
- return `#actor switches to the new window`;
375
- }
376
- }
377
-
378
- /**
379
- * @package
380
- */
381
- class SwitchToOriginalWindow extends Interaction {
382
- constructor() {
383
- super();
384
- }
385
-
386
- performAs(actor: UsesAbilities & AnswersQuestions): PromiseLike<void> {
387
- return BrowseTheWeb.as(actor).switchToOriginalWindow();
388
- }
389
-
390
- toString(): string {
391
- return `#actor switches back to the original browser window`;
392
- }
393
- }
@@ -1,89 +0,0 @@
1
- import { Answerable, AnswersQuestions, CollectsArtifacts, Interaction, UsesAbilities } from '@serenity-js/core';
2
- import { formatted } from '@serenity-js/core/lib/io';
3
- import { Name, Photo } from '@serenity-js/core/lib/model';
4
-
5
- import { BrowseTheWeb } from '../abilities';
6
-
7
- /**
8
- * @desc
9
- * Instructs the {@link @serenity-js/core/lib/screenplay/actor~Actor} to
10
- * take a screenshot and emit an {@link @serenity-js/core/lib/model~Artifact},
11
- * which can then be persisted by {@link @serenity-js/core/lib/stage/crew/artifact-archiver~ArtifactArchiver}
12
- * and reported by [Serenity BDD reporter](/modules/serenity-bdd).
13
- *
14
- * @example <caption>Clicking on an element</caption>
15
- * import { actorCalled } from '@serenity-js/core';
16
- * import { BrowseTheWeb, Navigate, TakeScreenshot } from '@serenity-js/protractor';
17
- * import { protractor } from 'protractor';
18
- *
19
- * actorCalled('Tania')
20
- * .whoCan(BrowseTheWeb.using(protractor.browser))
21
- * .attemptsTo(
22
- * Navigate.to('/app'),
23
- * TakeScreenshot.of('my app'),
24
- * );
25
- *
26
- * @see {@link BrowseTheWeb}
27
- * @see {@link @serenity-js/core/lib/screenplay/actor~CollectsArtifacts}
28
- * @see {@link @serenity-js/core/lib/model~Artifact}
29
- * @see {@link @serenity-js/core/lib/stage/crew/artifact-archiver~ArtifactArchiver}
30
- *
31
- * @extends {@serenity-js/core/lib/screenplay~Interaction}
32
- */
33
- export class TakeScreenshot extends Interaction {
34
-
35
- /**
36
- * @desc
37
- * Instantiates this {@link @serenity-js/core/lib/screenplay~Interaction}.
38
- *
39
- * @param {Answerable<string>} name
40
- * The name to associate the screenshot with
41
- *
42
- * @returns {@serenity-js/core/lib/screenplay~Interaction}
43
- */
44
- static of(name: Answerable<string>): Interaction {
45
- return new TakeScreenshot(name);
46
- }
47
-
48
- /**
49
- * @param {Answerable<string>} name
50
- * The name to associate the screenshot with
51
- */
52
- constructor(private readonly name: Answerable<string>) {
53
- super();
54
- }
55
-
56
- /**
57
- * @desc
58
- * Makes the provided {@link @serenity-js/core/lib/screenplay/actor~Actor}
59
- * perform this {@link @serenity-js/core/lib/screenplay~Interaction}.
60
- *
61
- * @param {UsesAbilities & AnswersQuestions} actor
62
- * An {@link @serenity-js/core/lib/screenplay/actor~Actor} to perform this {@link @serenity-js/core/lib/screenplay~Interaction}
63
- *
64
- * @returns {PromiseLike<void>}
65
- *
66
- * @see {@link @serenity-js/core/lib/screenplay/actor~Actor}
67
- * @see {@link @serenity-js/core/lib/screenplay/actor~UsesAbilities}
68
- * @see {@link @serenity-js/core/lib/screenplay/actor~AnswersQuestions}
69
- */
70
- performAs(actor: UsesAbilities & AnswersQuestions & CollectsArtifacts): PromiseLike<void> {
71
- return Promise.all([
72
- BrowseTheWeb.as(actor).takeScreenshot(),
73
- actor.answer(this.name),
74
- ]).then(([ screenshot, name ]) => actor.collect(
75
- Photo.fromBase64(screenshot),
76
- new Name(name),
77
- ));
78
- }
79
-
80
- /**
81
- * @desc
82
- * Generates a description to be used when reporting this {@link @serenity-js/core/lib/screenplay~Activity}.
83
- *
84
- * @returns {string}
85
- */
86
- toString(): string {
87
- return formatted `#actor takes a screenshot of ${this.name}`;
88
- }
89
- }