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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/CHANGELOG.md +359 -0
  2. package/lib/adapter/ProtractorFrameworkAdapter.js +5 -0
  3. package/lib/adapter/ProtractorFrameworkAdapter.js.map +1 -1
  4. package/lib/index.d.ts +0 -2
  5. package/lib/index.js +0 -2
  6. package/lib/index.js.map +1 -1
  7. package/lib/screenplay/abilities/{BrowseTheWeb.d.ts → BrowseTheWebWithProtractor.d.ts} +38 -164
  8. package/lib/screenplay/abilities/{BrowseTheWeb.js → BrowseTheWebWithProtractor.js} +139 -225
  9. package/lib/screenplay/abilities/BrowseTheWebWithProtractor.js.map +1 -0
  10. package/lib/screenplay/abilities/index.d.ts +1 -1
  11. package/lib/screenplay/abilities/index.js +1 -1
  12. package/lib/screenplay/abilities/index.js.map +1 -1
  13. package/lib/screenplay/index.d.ts +1 -0
  14. package/lib/screenplay/index.js +1 -0
  15. package/lib/screenplay/index.js.map +1 -1
  16. package/lib/screenplay/interactions/UseAngular.js +2 -2
  17. package/lib/screenplay/interactions/UseAngular.js.map +1 -1
  18. package/lib/screenplay/interactions/index.d.ts +0 -19
  19. package/lib/screenplay/interactions/index.js +0 -19
  20. package/lib/screenplay/interactions/index.js.map +1 -1
  21. package/lib/screenplay/models/ProtractorCookie.d.ts +11 -0
  22. package/lib/screenplay/models/ProtractorCookie.js +39 -0
  23. package/lib/screenplay/models/ProtractorCookie.js.map +1 -0
  24. package/lib/screenplay/models/ProtractorModalDialog.d.ts +11 -0
  25. package/lib/screenplay/models/ProtractorModalDialog.js +43 -0
  26. package/lib/screenplay/models/ProtractorModalDialog.js.map +1 -0
  27. package/lib/screenplay/models/ProtractorPage.d.ts +24 -0
  28. package/lib/screenplay/models/ProtractorPage.js +92 -0
  29. package/lib/screenplay/models/ProtractorPage.js.map +1 -0
  30. package/lib/screenplay/models/ProtractorPageElement.d.ts +21 -0
  31. package/lib/screenplay/models/ProtractorPageElement.js +230 -0
  32. package/lib/screenplay/models/ProtractorPageElement.js.map +1 -0
  33. package/lib/screenplay/models/index.d.ts +4 -0
  34. package/lib/screenplay/{questions/lists → models}/index.js +4 -1
  35. package/lib/screenplay/models/index.js.map +1 -0
  36. package/lib/screenplay/models/locators/ProtractorLocator.d.ts +9 -0
  37. package/lib/screenplay/models/locators/ProtractorLocator.js +28 -0
  38. package/lib/screenplay/models/locators/ProtractorLocator.js.map +1 -0
  39. package/lib/screenplay/models/locators/ProtractorNativeElementRoot.d.ts +5 -0
  40. package/lib/screenplay/{interactions/EnterBuilder.js → models/locators/ProtractorNativeElementRoot.js} +1 -1
  41. package/lib/screenplay/models/locators/ProtractorNativeElementRoot.js.map +1 -0
  42. package/lib/screenplay/models/locators/index.d.ts +2 -0
  43. package/lib/{stage/crew → screenplay/models/locators}/index.js +2 -1
  44. package/lib/screenplay/models/locators/index.js.map +1 -0
  45. package/lib/{promiseOf.d.ts → screenplay/promised.d.ts} +1 -1
  46. package/lib/{promiseOf.js → screenplay/promised.js} +4 -4
  47. package/lib/screenplay/promised.js.map +1 -0
  48. package/lib/screenplay/questions/ProtractorParam.d.ts +24 -29
  49. package/lib/screenplay/questions/ProtractorParam.js +26 -33
  50. package/lib/screenplay/questions/ProtractorParam.js.map +1 -1
  51. package/lib/screenplay/questions/index.d.ts +0 -13
  52. package/lib/screenplay/questions/index.js +0 -16
  53. package/lib/screenplay/questions/index.js.map +1 -1
  54. package/lib/screenplay/unpromisedWebElement.d.ts +11 -0
  55. package/lib/screenplay/unpromisedWebElement.js +24 -0
  56. package/lib/screenplay/unpromisedWebElement.js.map +1 -0
  57. package/package.json +21 -22
  58. package/src/adapter/ProtractorFrameworkAdapter.ts +5 -0
  59. package/src/index.ts +0 -2
  60. package/src/screenplay/abilities/{BrowseTheWeb.ts → BrowseTheWebWithProtractor.ts} +171 -247
  61. package/src/screenplay/abilities/index.ts +1 -1
  62. package/src/screenplay/index.ts +1 -0
  63. package/src/screenplay/interactions/UseAngular.ts +3 -3
  64. package/src/screenplay/interactions/index.ts +0 -19
  65. package/src/screenplay/models/ProtractorCookie.ts +41 -0
  66. package/src/screenplay/models/ProtractorModalDialog.ts +49 -0
  67. package/src/screenplay/models/ProtractorPage.ts +116 -0
  68. package/src/screenplay/models/ProtractorPageElement.ts +285 -0
  69. package/src/screenplay/models/index.ts +5 -0
  70. package/src/screenplay/models/locators/ProtractorLocator.ts +50 -0
  71. package/src/screenplay/models/locators/ProtractorNativeElementRoot.ts +6 -0
  72. package/src/screenplay/models/locators/index.ts +2 -0
  73. package/src/{promiseOf.ts → screenplay/promised.ts} +1 -1
  74. package/src/screenplay/questions/ProtractorParam.ts +29 -38
  75. package/src/screenplay/questions/index.ts +0 -13
  76. package/src/screenplay/unpromisedWebElement.ts +25 -0
  77. package/lib/expectations/ElementFinderExpectation.d.ts +0 -11
  78. package/lib/expectations/ElementFinderExpectation.js +0 -24
  79. package/lib/expectations/ElementFinderExpectation.js.map +0 -1
  80. package/lib/expectations/index.d.ts +0 -6
  81. package/lib/expectations/index.js +0 -19
  82. package/lib/expectations/index.js.map +0 -1
  83. package/lib/expectations/isActive.d.ts +0 -13
  84. package/lib/expectations/isActive.js +0 -19
  85. package/lib/expectations/isActive.js.map +0 -1
  86. package/lib/expectations/isClickable.d.ts +0 -13
  87. package/lib/expectations/isClickable.js +0 -22
  88. package/lib/expectations/isClickable.js.map +0 -1
  89. package/lib/expectations/isEnabled.d.ts +0 -13
  90. package/lib/expectations/isEnabled.js +0 -19
  91. package/lib/expectations/isEnabled.js.map +0 -1
  92. package/lib/expectations/isPresent.d.ts +0 -14
  93. package/lib/expectations/isPresent.js +0 -20
  94. package/lib/expectations/isPresent.js.map +0 -1
  95. package/lib/expectations/isSelected.d.ts +0 -13
  96. package/lib/expectations/isSelected.js +0 -22
  97. package/lib/expectations/isSelected.js.map +0 -1
  98. package/lib/expectations/isVisible.d.ts +0 -13
  99. package/lib/expectations/isVisible.js +0 -25
  100. package/lib/expectations/isVisible.js.map +0 -1
  101. package/lib/promiseOf.js.map +0 -1
  102. package/lib/screenplay/abilities/BrowseTheWeb.js.map +0 -1
  103. package/lib/screenplay/interactions/Accept.d.ts +0 -81
  104. package/lib/screenplay/interactions/Accept.js +0 -95
  105. package/lib/screenplay/interactions/Accept.js.map +0 -1
  106. package/lib/screenplay/interactions/Clear.d.ts +0 -88
  107. package/lib/screenplay/interactions/Clear.js +0 -121
  108. package/lib/screenplay/interactions/Clear.js.map +0 -1
  109. package/lib/screenplay/interactions/Click.d.ts +0 -81
  110. package/lib/screenplay/interactions/Click.js +0 -95
  111. package/lib/screenplay/interactions/Click.js.map +0 -1
  112. package/lib/screenplay/interactions/Close.d.ts +0 -89
  113. package/lib/screenplay/interactions/Close.js +0 -169
  114. package/lib/screenplay/interactions/Close.js.map +0 -1
  115. package/lib/screenplay/interactions/DeleteCookies.d.ts +0 -72
  116. package/lib/screenplay/interactions/DeleteCookies.js +0 -149
  117. package/lib/screenplay/interactions/DeleteCookies.js.map +0 -1
  118. package/lib/screenplay/interactions/Dismiss.d.ts +0 -85
  119. package/lib/screenplay/interactions/Dismiss.js +0 -99
  120. package/lib/screenplay/interactions/Dismiss.js.map +0 -1
  121. package/lib/screenplay/interactions/DoubleClick.d.ts +0 -99
  122. package/lib/screenplay/interactions/DoubleClick.js +0 -121
  123. package/lib/screenplay/interactions/DoubleClick.js.map +0 -1
  124. package/lib/screenplay/interactions/Enter.d.ts +0 -81
  125. package/lib/screenplay/interactions/Enter.js +0 -96
  126. package/lib/screenplay/interactions/Enter.js.map +0 -1
  127. package/lib/screenplay/interactions/EnterBuilder.d.ts +0 -27
  128. package/lib/screenplay/interactions/EnterBuilder.js.map +0 -1
  129. package/lib/screenplay/interactions/ExecuteScript.d.ts +0 -171
  130. package/lib/screenplay/interactions/ExecuteScript.js +0 -291
  131. package/lib/screenplay/interactions/ExecuteScript.js.map +0 -1
  132. package/lib/screenplay/interactions/Hover.d.ts +0 -86
  133. package/lib/screenplay/interactions/Hover.js +0 -103
  134. package/lib/screenplay/interactions/Hover.js.map +0 -1
  135. package/lib/screenplay/interactions/Navigate.d.ts +0 -149
  136. package/lib/screenplay/interactions/Navigate.js +0 -345
  137. package/lib/screenplay/interactions/Navigate.js.map +0 -1
  138. package/lib/screenplay/interactions/Press.d.ts +0 -90
  139. package/lib/screenplay/interactions/Press.js +0 -127
  140. package/lib/screenplay/interactions/Press.js.map +0 -1
  141. package/lib/screenplay/interactions/PressBuilder.d.ts +0 -27
  142. package/lib/screenplay/interactions/PressBuilder.js +0 -3
  143. package/lib/screenplay/interactions/PressBuilder.js.map +0 -1
  144. package/lib/screenplay/interactions/ResizeBrowserWindow.d.ts +0 -69
  145. package/lib/screenplay/interactions/ResizeBrowserWindow.js +0 -144
  146. package/lib/screenplay/interactions/ResizeBrowserWindow.js.map +0 -1
  147. package/lib/screenplay/interactions/RightClick.d.ts +0 -97
  148. package/lib/screenplay/interactions/RightClick.js +0 -113
  149. package/lib/screenplay/interactions/RightClick.js.map +0 -1
  150. package/lib/screenplay/interactions/Scroll.d.ts +0 -83
  151. package/lib/screenplay/interactions/Scroll.js +0 -98
  152. package/lib/screenplay/interactions/Scroll.js.map +0 -1
  153. package/lib/screenplay/interactions/Select.d.ts +0 -212
  154. package/lib/screenplay/interactions/Select.js +0 -342
  155. package/lib/screenplay/interactions/Select.js.map +0 -1
  156. package/lib/screenplay/interactions/SelectBuilder.d.ts +0 -33
  157. package/lib/screenplay/interactions/SelectBuilder.js +0 -3
  158. package/lib/screenplay/interactions/SelectBuilder.js.map +0 -1
  159. package/lib/screenplay/interactions/Switch.d.ts +0 -210
  160. package/lib/screenplay/interactions/Switch.js +0 -345
  161. package/lib/screenplay/interactions/Switch.js.map +0 -1
  162. package/lib/screenplay/interactions/TakeScreenshot.d.ts +0 -67
  163. package/lib/screenplay/interactions/TakeScreenshot.js +0 -86
  164. package/lib/screenplay/interactions/TakeScreenshot.js.map +0 -1
  165. package/lib/screenplay/interactions/Wait.d.ts +0 -147
  166. package/lib/screenplay/interactions/Wait.js +0 -247
  167. package/lib/screenplay/interactions/Wait.js.map +0 -1
  168. package/lib/screenplay/interactions/WaitBuilder.d.ts +0 -33
  169. package/lib/screenplay/interactions/WaitBuilder.js +0 -3
  170. package/lib/screenplay/interactions/WaitBuilder.js.map +0 -1
  171. package/lib/screenplay/questions/Attribute.d.ts +0 -29
  172. package/lib/screenplay/questions/Attribute.js +0 -56
  173. package/lib/screenplay/questions/Attribute.js.map +0 -1
  174. package/lib/screenplay/questions/Browser.d.ts +0 -47
  175. package/lib/screenplay/questions/Browser.js +0 -55
  176. package/lib/screenplay/questions/Browser.js.map +0 -1
  177. package/lib/screenplay/questions/CSSClasses.d.ts +0 -94
  178. package/lib/screenplay/questions/CSSClasses.js +0 -118
  179. package/lib/screenplay/questions/CSSClasses.js.map +0 -1
  180. package/lib/screenplay/questions/Cookie.d.ts +0 -9
  181. package/lib/screenplay/questions/Cookie.js +0 -65
  182. package/lib/screenplay/questions/Cookie.js.map +0 -1
  183. package/lib/screenplay/questions/LastScriptExecution.d.ts +0 -14
  184. package/lib/screenplay/questions/LastScriptExecution.js +0 -22
  185. package/lib/screenplay/questions/LastScriptExecution.js.map +0 -1
  186. package/lib/screenplay/questions/ModalDialog.d.ts +0 -120
  187. package/lib/screenplay/questions/ModalDialog.js +0 -142
  188. package/lib/screenplay/questions/ModalDialog.js.map +0 -1
  189. package/lib/screenplay/questions/Pick.d.ts +0 -72
  190. package/lib/screenplay/questions/Pick.js +0 -254
  191. package/lib/screenplay/questions/Pick.js.map +0 -1
  192. package/lib/screenplay/questions/Selected.d.ts +0 -185
  193. package/lib/screenplay/questions/Selected.js +0 -254
  194. package/lib/screenplay/questions/Selected.js.map +0 -1
  195. package/lib/screenplay/questions/Value.d.ts +0 -47
  196. package/lib/screenplay/questions/Value.js +0 -67
  197. package/lib/screenplay/questions/Value.js.map +0 -1
  198. package/lib/screenplay/questions/Website.d.ts +0 -15
  199. package/lib/screenplay/questions/Website.js +0 -25
  200. package/lib/screenplay/questions/Website.js.map +0 -1
  201. package/lib/screenplay/questions/Window.d.ts +0 -23
  202. package/lib/screenplay/questions/Window.js +0 -28
  203. package/lib/screenplay/questions/Window.js.map +0 -1
  204. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.d.ts +0 -89
  205. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js +0 -138
  206. package/lib/screenplay/questions/lists/ElementArrayFinderListAdapter.js.map +0 -1
  207. package/lib/screenplay/questions/lists/index.d.ts +0 -1
  208. package/lib/screenplay/questions/lists/index.js.map +0 -1
  209. package/lib/screenplay/questions/targets/Target.d.ts +0 -168
  210. package/lib/screenplay/questions/targets/Target.js +0 -190
  211. package/lib/screenplay/questions/targets/Target.js.map +0 -1
  212. package/lib/screenplay/questions/targets/TargetElement.d.ts +0 -50
  213. package/lib/screenplay/questions/targets/TargetElement.js +0 -62
  214. package/lib/screenplay/questions/targets/TargetElement.js.map +0 -1
  215. package/lib/screenplay/questions/targets/TargetElements.d.ts +0 -102
  216. package/lib/screenplay/questions/targets/TargetElements.js +0 -124
  217. package/lib/screenplay/questions/targets/TargetElements.js.map +0 -1
  218. package/lib/screenplay/questions/targets/TargetNestedElement.d.ts +0 -49
  219. package/lib/screenplay/questions/targets/TargetNestedElement.js +0 -61
  220. package/lib/screenplay/questions/targets/TargetNestedElement.js.map +0 -1
  221. package/lib/screenplay/questions/targets/TargetNestedElements.d.ts +0 -101
  222. package/lib/screenplay/questions/targets/TargetNestedElements.js +0 -123
  223. package/lib/screenplay/questions/targets/TargetNestedElements.js.map +0 -1
  224. package/lib/screenplay/questions/targets/builders.d.ts +0 -8
  225. package/lib/screenplay/questions/targets/builders.js +0 -3
  226. package/lib/screenplay/questions/targets/builders.js.map +0 -1
  227. package/lib/screenplay/questions/targets/index.d.ts +0 -5
  228. package/lib/screenplay/questions/targets/index.js +0 -18
  229. package/lib/screenplay/questions/targets/index.js.map +0 -1
  230. package/lib/screenplay/questions/targets/override.d.ts +0 -7
  231. package/lib/screenplay/questions/targets/override.js +0 -21
  232. package/lib/screenplay/questions/targets/override.js.map +0 -1
  233. package/lib/screenplay/questions/text/Text.d.ts +0 -41
  234. package/lib/screenplay/questions/text/Text.js +0 -50
  235. package/lib/screenplay/questions/text/Text.js.map +0 -1
  236. package/lib/screenplay/questions/text/TextOfMultipleElements.d.ts +0 -23
  237. package/lib/screenplay/questions/text/TextOfMultipleElements.js +0 -37
  238. package/lib/screenplay/questions/text/TextOfMultipleElements.js.map +0 -1
  239. package/lib/screenplay/questions/text/TextOfSingleElement.d.ts +0 -23
  240. package/lib/screenplay/questions/text/TextOfSingleElement.js +0 -35
  241. package/lib/screenplay/questions/text/TextOfSingleElement.js.map +0 -1
  242. package/lib/screenplay/questions/text/index.d.ts +0 -1
  243. package/lib/screenplay/questions/text/index.js +0 -14
  244. package/lib/screenplay/questions/text/index.js.map +0 -1
  245. package/lib/screenplay/withAnswerOf.d.ts +0 -8
  246. package/lib/screenplay/withAnswerOf.js +0 -18
  247. package/lib/screenplay/withAnswerOf.js.map +0 -1
  248. package/lib/stage/crew/index.d.ts +0 -1
  249. package/lib/stage/crew/index.js.map +0 -1
  250. package/lib/stage/crew/photographer/Photographer.d.ts +0 -83
  251. package/lib/stage/crew/photographer/Photographer.js +0 -102
  252. package/lib/stage/crew/photographer/Photographer.js.map +0 -1
  253. package/lib/stage/crew/photographer/index.d.ts +0 -2
  254. package/lib/stage/crew/photographer/index.js +0 -15
  255. package/lib/stage/crew/photographer/index.js.map +0 -1
  256. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +0 -28
  257. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +0 -65
  258. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +0 -1
  259. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +0 -18
  260. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +0 -30
  261. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +0 -1
  262. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +0 -17
  263. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +0 -28
  264. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +0 -1
  265. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +0 -19
  266. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +0 -28
  267. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +0 -1
  268. package/lib/stage/crew/photographer/strategies/index.d.ts +0 -4
  269. package/lib/stage/crew/photographer/strategies/index.js +0 -17
  270. package/lib/stage/crew/photographer/strategies/index.js.map +0 -1
  271. package/lib/stage/index.d.ts +0 -1
  272. package/lib/stage/index.js +0 -14
  273. package/lib/stage/index.js.map +0 -1
  274. package/src/expectations/ElementFinderExpectation.ts +0 -29
  275. package/src/expectations/index.ts +0 -6
  276. package/src/expectations/isActive.ts +0 -24
  277. package/src/expectations/isClickable.ts +0 -20
  278. package/src/expectations/isEnabled.ts +0 -18
  279. package/src/expectations/isPresent.ts +0 -19
  280. package/src/expectations/isSelected.ts +0 -23
  281. package/src/expectations/isVisible.ts +0 -27
  282. package/src/screenplay/interactions/Accept.ts +0 -95
  283. package/src/screenplay/interactions/Clear.ts +0 -130
  284. package/src/screenplay/interactions/Click.ts +0 -96
  285. package/src/screenplay/interactions/Close.ts +0 -184
  286. package/src/screenplay/interactions/DeleteCookies.ts +0 -154
  287. package/src/screenplay/interactions/Dismiss.ts +0 -99
  288. package/src/screenplay/interactions/DoubleClick.ts +0 -124
  289. package/src/screenplay/interactions/Enter.ts +0 -104
  290. package/src/screenplay/interactions/EnterBuilder.ts +0 -29
  291. package/src/screenplay/interactions/ExecuteScript.ts +0 -325
  292. package/src/screenplay/interactions/Hover.ts +0 -106
  293. package/src/screenplay/interactions/Navigate.ts +0 -363
  294. package/src/screenplay/interactions/Press.ts +0 -137
  295. package/src/screenplay/interactions/PressBuilder.ts +0 -29
  296. package/src/screenplay/interactions/ResizeBrowserWindow.ts +0 -148
  297. package/src/screenplay/interactions/RightClick.ts +0 -114
  298. package/src/screenplay/interactions/Scroll.ts +0 -99
  299. package/src/screenplay/interactions/Select.ts +0 -402
  300. package/src/screenplay/interactions/SelectBuilder.ts +0 -35
  301. package/src/screenplay/interactions/Switch.ts +0 -393
  302. package/src/screenplay/interactions/TakeScreenshot.ts +0 -89
  303. package/src/screenplay/interactions/Wait.ts +0 -267
  304. package/src/screenplay/interactions/WaitBuilder.ts +0 -35
  305. package/src/screenplay/questions/Attribute.ts +0 -67
  306. package/src/screenplay/questions/Browser.ts +0 -55
  307. package/src/screenplay/questions/CSSClasses.ts +0 -121
  308. package/src/screenplay/questions/Cookie.ts +0 -70
  309. package/src/screenplay/questions/LastScriptExecution.ts +0 -21
  310. package/src/screenplay/questions/ModalDialog.ts +0 -149
  311. package/src/screenplay/questions/Pick.ts +0 -334
  312. package/src/screenplay/questions/Selected.ts +0 -268
  313. package/src/screenplay/questions/Value.ts +0 -73
  314. package/src/screenplay/questions/Website.ts +0 -27
  315. package/src/screenplay/questions/Window.ts +0 -29
  316. package/src/screenplay/questions/lists/ElementArrayFinderListAdapter.ts +0 -158
  317. package/src/screenplay/questions/lists/index.ts +0 -1
  318. package/src/screenplay/questions/targets/Target.ts +0 -198
  319. package/src/screenplay/questions/targets/TargetElement.ts +0 -70
  320. package/src/screenplay/questions/targets/TargetElements.ts +0 -142
  321. package/src/screenplay/questions/targets/TargetNestedElement.ts +0 -71
  322. package/src/screenplay/questions/targets/TargetNestedElements.ts +0 -142
  323. package/src/screenplay/questions/targets/builders.ts +0 -10
  324. package/src/screenplay/questions/targets/index.ts +0 -5
  325. package/src/screenplay/questions/targets/override.ts +0 -17
  326. package/src/screenplay/questions/text/Text.ts +0 -55
  327. package/src/screenplay/questions/text/TextOfMultipleElements.ts +0 -40
  328. package/src/screenplay/questions/text/TextOfSingleElement.ts +0 -37
  329. package/src/screenplay/questions/text/index.ts +0 -1
  330. package/src/screenplay/withAnswerOf.ts +0 -19
  331. package/src/stage/crew/index.ts +0 -1
  332. package/src/stage/crew/photographer/Photographer.ts +0 -108
  333. package/src/stage/crew/photographer/index.ts +0 -2
  334. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +0 -102
  335. package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +0 -28
  336. package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +0 -26
  337. package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +0 -26
  338. package/src/stage/crew/photographer/strategies/index.ts +0 -4
  339. 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
- }