@serenity-js/web 3.41.1 → 3.42.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 (657) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/esm/errors/BrowserWindowClosedError.d.ts +15 -0
  3. package/esm/errors/BrowserWindowClosedError.d.ts.map +1 -0
  4. package/esm/errors/BrowserWindowClosedError.js +17 -0
  5. package/esm/errors/BrowserWindowClosedError.js.map +1 -0
  6. package/esm/errors/CookieMissingError.d.ts +15 -0
  7. package/esm/errors/CookieMissingError.d.ts.map +1 -0
  8. package/esm/errors/CookieMissingError.js +17 -0
  9. package/esm/errors/CookieMissingError.js.map +1 -0
  10. package/esm/errors/ModalDialogObstructsScreenshotError.d.ts +15 -0
  11. package/esm/errors/ModalDialogObstructsScreenshotError.d.ts.map +1 -0
  12. package/esm/errors/ModalDialogObstructsScreenshotError.js +17 -0
  13. package/esm/errors/ModalDialogObstructsScreenshotError.js.map +1 -0
  14. package/esm/errors/index.d.ts +4 -0
  15. package/esm/errors/index.d.ts.map +1 -0
  16. package/esm/errors/index.js +4 -0
  17. package/esm/errors/index.js.map +1 -0
  18. package/esm/expectations/index.d.ts +6 -0
  19. package/esm/expectations/index.d.ts.map +1 -0
  20. package/esm/expectations/index.js +6 -0
  21. package/esm/expectations/index.js.map +1 -0
  22. package/esm/expectations/isActive.d.ts +20 -0
  23. package/esm/expectations/isActive.d.ts.map +1 -0
  24. package/esm/expectations/isActive.js +23 -0
  25. package/esm/expectations/isActive.js.map +1 -0
  26. package/esm/expectations/isClickable.d.ts +20 -0
  27. package/esm/expectations/isClickable.d.ts.map +1 -0
  28. package/esm/expectations/isClickable.js +23 -0
  29. package/esm/expectations/isClickable.js.map +1 -0
  30. package/esm/expectations/isEnabled.d.ts +20 -0
  31. package/esm/expectations/isEnabled.d.ts.map +1 -0
  32. package/esm/expectations/isEnabled.js +23 -0
  33. package/esm/expectations/isEnabled.js.map +1 -0
  34. package/esm/expectations/isSelected.d.ts +20 -0
  35. package/esm/expectations/isSelected.d.ts.map +1 -0
  36. package/esm/expectations/isSelected.js +23 -0
  37. package/esm/expectations/isSelected.js.map +1 -0
  38. package/esm/expectations/isVisible.d.ts +20 -0
  39. package/esm/expectations/isVisible.d.ts.map +1 -0
  40. package/esm/expectations/isVisible.js +23 -0
  41. package/esm/expectations/isVisible.js.map +1 -0
  42. package/esm/index.d.ts +5 -0
  43. package/esm/index.d.ts.map +1 -0
  44. package/esm/index.js +5 -0
  45. package/esm/index.js.map +1 -0
  46. package/esm/screenplay/abilities/BrowseTheWeb.d.ts +98 -0
  47. package/esm/screenplay/abilities/BrowseTheWeb.d.ts.map +1 -0
  48. package/esm/screenplay/abilities/BrowseTheWeb.js +106 -0
  49. package/esm/screenplay/abilities/BrowseTheWeb.js.map +1 -0
  50. package/esm/screenplay/abilities/index.d.ts +2 -0
  51. package/esm/screenplay/abilities/index.d.ts.map +1 -0
  52. package/esm/screenplay/abilities/index.js +2 -0
  53. package/esm/screenplay/abilities/index.js.map +1 -0
  54. package/esm/screenplay/index.d.ts +5 -0
  55. package/esm/screenplay/index.d.ts.map +1 -0
  56. package/esm/screenplay/index.js +5 -0
  57. package/esm/screenplay/index.js.map +1 -0
  58. package/esm/screenplay/interactions/Clear.d.ts +74 -0
  59. package/esm/screenplay/interactions/Clear.d.ts.map +1 -0
  60. package/esm/screenplay/interactions/Clear.js +101 -0
  61. package/esm/screenplay/interactions/Clear.js.map +1 -0
  62. package/esm/screenplay/interactions/Click.d.ts +64 -0
  63. package/esm/screenplay/interactions/Click.d.ts.map +1 -0
  64. package/esm/screenplay/interactions/Click.js +72 -0
  65. package/esm/screenplay/interactions/Click.js.map +1 -0
  66. package/esm/screenplay/interactions/DoubleClick.d.ts +87 -0
  67. package/esm/screenplay/interactions/DoubleClick.d.ts.map +1 -0
  68. package/esm/screenplay/interactions/DoubleClick.js +95 -0
  69. package/esm/screenplay/interactions/DoubleClick.js.map +1 -0
  70. package/esm/screenplay/interactions/Drag.d.ts +95 -0
  71. package/esm/screenplay/interactions/Drag.d.ts.map +1 -0
  72. package/esm/screenplay/interactions/Drag.js +119 -0
  73. package/esm/screenplay/interactions/Drag.js.map +1 -0
  74. package/esm/screenplay/interactions/Enter.d.ts +81 -0
  75. package/esm/screenplay/interactions/Enter.d.ts.map +1 -0
  76. package/esm/screenplay/interactions/Enter.js +93 -0
  77. package/esm/screenplay/interactions/Enter.js.map +1 -0
  78. package/esm/screenplay/interactions/ExecuteScript.d.ts +297 -0
  79. package/esm/screenplay/interactions/ExecuteScript.d.ts.map +1 -0
  80. package/esm/screenplay/interactions/ExecuteScript.js +383 -0
  81. package/esm/screenplay/interactions/ExecuteScript.js.map +1 -0
  82. package/esm/screenplay/interactions/Hover.d.ts +68 -0
  83. package/esm/screenplay/interactions/Hover.d.ts.map +1 -0
  84. package/esm/screenplay/interactions/Hover.js +76 -0
  85. package/esm/screenplay/interactions/Hover.js.map +1 -0
  86. package/esm/screenplay/interactions/Navigate.d.ts +137 -0
  87. package/esm/screenplay/interactions/Navigate.d.ts.map +1 -0
  88. package/esm/screenplay/interactions/Navigate.js +174 -0
  89. package/esm/screenplay/interactions/Navigate.js.map +1 -0
  90. package/esm/screenplay/interactions/PageElementInteraction.d.ts +24 -0
  91. package/esm/screenplay/interactions/PageElementInteraction.d.ts.map +1 -0
  92. package/esm/screenplay/interactions/PageElementInteraction.js +29 -0
  93. package/esm/screenplay/interactions/PageElementInteraction.js.map +1 -0
  94. package/esm/screenplay/interactions/Press.d.ts +92 -0
  95. package/esm/screenplay/interactions/Press.d.ts.map +1 -0
  96. package/esm/screenplay/interactions/Press.js +166 -0
  97. package/esm/screenplay/interactions/Press.js.map +1 -0
  98. package/esm/screenplay/interactions/RightClick.d.ts +83 -0
  99. package/esm/screenplay/interactions/RightClick.d.ts.map +1 -0
  100. package/esm/screenplay/interactions/RightClick.js +91 -0
  101. package/esm/screenplay/interactions/RightClick.js.map +1 -0
  102. package/esm/screenplay/interactions/Scroll.d.ts +66 -0
  103. package/esm/screenplay/interactions/Scroll.d.ts.map +1 -0
  104. package/esm/screenplay/interactions/Scroll.js +72 -0
  105. package/esm/screenplay/interactions/Scroll.js.map +1 -0
  106. package/esm/screenplay/interactions/Select.d.ts +235 -0
  107. package/esm/screenplay/interactions/Select.d.ts.map +1 -0
  108. package/esm/screenplay/interactions/Select.js +262 -0
  109. package/esm/screenplay/interactions/Select.js.map +1 -0
  110. package/esm/screenplay/interactions/Switch.d.ts +130 -0
  111. package/esm/screenplay/interactions/Switch.d.ts.map +1 -0
  112. package/esm/screenplay/interactions/Switch.js +159 -0
  113. package/esm/screenplay/interactions/Switch.js.map +1 -0
  114. package/esm/screenplay/interactions/TakeScreenshot.d.ts +47 -0
  115. package/esm/screenplay/interactions/TakeScreenshot.d.ts.map +1 -0
  116. package/esm/screenplay/interactions/TakeScreenshot.js +58 -0
  117. package/esm/screenplay/interactions/TakeScreenshot.js.map +1 -0
  118. package/esm/screenplay/interactions/index.d.ts +16 -0
  119. package/esm/screenplay/interactions/index.d.ts.map +1 -0
  120. package/esm/screenplay/interactions/index.js +16 -0
  121. package/esm/screenplay/interactions/index.js.map +1 -0
  122. package/esm/screenplay/models/ArgumentDehydrator.d.ts +14 -0
  123. package/esm/screenplay/models/ArgumentDehydrator.d.ts.map +1 -0
  124. package/esm/screenplay/models/ArgumentDehydrator.js +45 -0
  125. package/esm/screenplay/models/ArgumentDehydrator.js.map +1 -0
  126. package/esm/screenplay/models/BrowserCapabilities.d.ts +24 -0
  127. package/esm/screenplay/models/BrowserCapabilities.d.ts.map +1 -0
  128. package/esm/screenplay/models/BrowserCapabilities.js +2 -0
  129. package/esm/screenplay/models/BrowserCapabilities.js.map +1 -0
  130. package/esm/screenplay/models/BrowsingSession.d.ts +74 -0
  131. package/esm/screenplay/models/BrowsingSession.d.ts.map +1 -0
  132. package/esm/screenplay/models/BrowsingSession.js +96 -0
  133. package/esm/screenplay/models/BrowsingSession.js.map +1 -0
  134. package/esm/screenplay/models/Cookie.d.ts +158 -0
  135. package/esm/screenplay/models/Cookie.d.ts.map +1 -0
  136. package/esm/screenplay/models/Cookie.js +225 -0
  137. package/esm/screenplay/models/Cookie.js.map +1 -0
  138. package/esm/screenplay/models/CookieData.d.ts +51 -0
  139. package/esm/screenplay/models/CookieData.d.ts.map +1 -0
  140. package/esm/screenplay/models/CookieData.js +2 -0
  141. package/esm/screenplay/models/CookieData.js.map +1 -0
  142. package/esm/screenplay/models/Key.d.ts +82 -0
  143. package/esm/screenplay/models/Key.d.ts.map +1 -0
  144. package/esm/screenplay/models/Key.js +97 -0
  145. package/esm/screenplay/models/Key.js.map +1 -0
  146. package/esm/screenplay/models/Locator.d.ts +48 -0
  147. package/esm/screenplay/models/Locator.d.ts.map +1 -0
  148. package/esm/screenplay/models/Locator.js +64 -0
  149. package/esm/screenplay/models/Locator.js.map +1 -0
  150. package/esm/screenplay/models/Page.d.ts +453 -0
  151. package/esm/screenplay/models/Page.d.ts.map +1 -0
  152. package/esm/screenplay/models/Page.js +252 -0
  153. package/esm/screenplay/models/Page.js.map +1 -0
  154. package/esm/screenplay/models/PageElement.d.ts +207 -0
  155. package/esm/screenplay/models/PageElement.d.ts.map +1 -0
  156. package/esm/screenplay/models/PageElement.js +89 -0
  157. package/esm/screenplay/models/PageElement.js.map +1 -0
  158. package/esm/screenplay/models/PageElements.d.ts +21 -0
  159. package/esm/screenplay/models/PageElements.d.ts.map +1 -0
  160. package/esm/screenplay/models/PageElements.js +21 -0
  161. package/esm/screenplay/models/PageElements.js.map +1 -0
  162. package/esm/screenplay/models/PageElementsLocator.d.ts +16 -0
  163. package/esm/screenplay/models/PageElementsLocator.d.ts.map +1 -0
  164. package/esm/screenplay/models/PageElementsLocator.js +31 -0
  165. package/esm/screenplay/models/PageElementsLocator.js.map +1 -0
  166. package/esm/screenplay/models/RootLocator.d.ts +24 -0
  167. package/esm/screenplay/models/RootLocator.d.ts.map +1 -0
  168. package/esm/screenplay/models/RootLocator.js +21 -0
  169. package/esm/screenplay/models/RootLocator.js.map +1 -0
  170. package/esm/screenplay/models/SelectOption.d.ts +25 -0
  171. package/esm/screenplay/models/SelectOption.d.ts.map +1 -0
  172. package/esm/screenplay/models/SelectOption.js +37 -0
  173. package/esm/screenplay/models/SelectOption.js.map +1 -0
  174. package/esm/screenplay/models/Switchable.d.ts +23 -0
  175. package/esm/screenplay/models/Switchable.d.ts.map +1 -0
  176. package/esm/screenplay/models/Switchable.js +2 -0
  177. package/esm/screenplay/models/Switchable.js.map +1 -0
  178. package/esm/screenplay/models/SwitchableOrigin.d.ts +18 -0
  179. package/esm/screenplay/models/SwitchableOrigin.d.ts.map +1 -0
  180. package/esm/screenplay/models/SwitchableOrigin.js +2 -0
  181. package/esm/screenplay/models/SwitchableOrigin.js.map +1 -0
  182. package/esm/screenplay/models/dialogs/AbsentModalDialog.d.ts +15 -0
  183. package/esm/screenplay/models/dialogs/AbsentModalDialog.d.ts.map +1 -0
  184. package/esm/screenplay/models/dialogs/AbsentModalDialog.js +20 -0
  185. package/esm/screenplay/models/dialogs/AbsentModalDialog.js.map +1 -0
  186. package/esm/screenplay/models/dialogs/AcceptedModalDialog.d.ts +17 -0
  187. package/esm/screenplay/models/dialogs/AcceptedModalDialog.d.ts.map +1 -0
  188. package/esm/screenplay/models/dialogs/AcceptedModalDialog.js +26 -0
  189. package/esm/screenplay/models/dialogs/AcceptedModalDialog.js.map +1 -0
  190. package/esm/screenplay/models/dialogs/DismissedModalDialog.d.ts +17 -0
  191. package/esm/screenplay/models/dialogs/DismissedModalDialog.d.ts.map +1 -0
  192. package/esm/screenplay/models/dialogs/DismissedModalDialog.js +26 -0
  193. package/esm/screenplay/models/dialogs/DismissedModalDialog.js.map +1 -0
  194. package/esm/screenplay/models/dialogs/ModalDialog.d.ts +171 -0
  195. package/esm/screenplay/models/dialogs/ModalDialog.d.ts.map +1 -0
  196. package/esm/screenplay/models/dialogs/ModalDialog.js +173 -0
  197. package/esm/screenplay/models/dialogs/ModalDialog.js.map +1 -0
  198. package/esm/screenplay/models/dialogs/ModalDialogHandler.d.ts +38 -0
  199. package/esm/screenplay/models/dialogs/ModalDialogHandler.d.ts.map +1 -0
  200. package/esm/screenplay/models/dialogs/ModalDialogHandler.js +27 -0
  201. package/esm/screenplay/models/dialogs/ModalDialogHandler.js.map +1 -0
  202. package/esm/screenplay/models/dialogs/index.d.ts +6 -0
  203. package/esm/screenplay/models/dialogs/index.d.ts.map +1 -0
  204. package/esm/screenplay/models/dialogs/index.js +6 -0
  205. package/esm/screenplay/models/dialogs/index.js.map +1 -0
  206. package/esm/screenplay/models/index.d.ts +18 -0
  207. package/esm/screenplay/models/index.d.ts.map +1 -0
  208. package/esm/screenplay/models/index.js +18 -0
  209. package/esm/screenplay/models/index.js.map +1 -0
  210. package/esm/screenplay/models/selectors/By.d.ts +169 -0
  211. package/esm/screenplay/models/selectors/By.d.ts.map +1 -0
  212. package/esm/screenplay/models/selectors/By.js +217 -0
  213. package/esm/screenplay/models/selectors/By.js.map +1 -0
  214. package/esm/screenplay/models/selectors/ByCss.d.ts +13 -0
  215. package/esm/screenplay/models/selectors/ByCss.d.ts.map +1 -0
  216. package/esm/screenplay/models/selectors/ByCss.js +16 -0
  217. package/esm/screenplay/models/selectors/ByCss.js.map +1 -0
  218. package/esm/screenplay/models/selectors/ByCssContainingText.d.ts +15 -0
  219. package/esm/screenplay/models/selectors/ByCssContainingText.d.ts.map +1 -0
  220. package/esm/screenplay/models/selectors/ByCssContainingText.js +19 -0
  221. package/esm/screenplay/models/selectors/ByCssContainingText.js.map +1 -0
  222. package/esm/screenplay/models/selectors/ByDeepCss.d.ts +14 -0
  223. package/esm/screenplay/models/selectors/ByDeepCss.d.ts.map +1 -0
  224. package/esm/screenplay/models/selectors/ByDeepCss.js +17 -0
  225. package/esm/screenplay/models/selectors/ByDeepCss.js.map +1 -0
  226. package/esm/screenplay/models/selectors/ById.d.ts +13 -0
  227. package/esm/screenplay/models/selectors/ById.d.ts.map +1 -0
  228. package/esm/screenplay/models/selectors/ById.js +16 -0
  229. package/esm/screenplay/models/selectors/ById.js.map +1 -0
  230. package/esm/screenplay/models/selectors/ByRole.d.ts +126 -0
  231. package/esm/screenplay/models/selectors/ByRole.d.ts.map +1 -0
  232. package/esm/screenplay/models/selectors/ByRole.js +19 -0
  233. package/esm/screenplay/models/selectors/ByRole.js.map +1 -0
  234. package/esm/screenplay/models/selectors/ByTagName.d.ts +13 -0
  235. package/esm/screenplay/models/selectors/ByTagName.d.ts.map +1 -0
  236. package/esm/screenplay/models/selectors/ByTagName.js +16 -0
  237. package/esm/screenplay/models/selectors/ByTagName.js.map +1 -0
  238. package/esm/screenplay/models/selectors/ByXPath.d.ts +13 -0
  239. package/esm/screenplay/models/selectors/ByXPath.d.ts.map +1 -0
  240. package/esm/screenplay/models/selectors/ByXPath.js +16 -0
  241. package/esm/screenplay/models/selectors/ByXPath.js.map +1 -0
  242. package/esm/screenplay/models/selectors/Selector.d.ts +10 -0
  243. package/esm/screenplay/models/selectors/Selector.d.ts.map +1 -0
  244. package/esm/screenplay/models/selectors/Selector.js +15 -0
  245. package/esm/screenplay/models/selectors/Selector.js.map +1 -0
  246. package/esm/screenplay/models/selectors/index.d.ts +10 -0
  247. package/esm/screenplay/models/selectors/index.d.ts.map +1 -0
  248. package/esm/screenplay/models/selectors/index.js +10 -0
  249. package/esm/screenplay/models/selectors/index.js.map +1 -0
  250. package/esm/screenplay/questions/Attribute.d.ts +127 -0
  251. package/esm/screenplay/questions/Attribute.d.ts.map +1 -0
  252. package/esm/screenplay/questions/Attribute.js +150 -0
  253. package/esm/screenplay/questions/Attribute.js.map +1 -0
  254. package/esm/screenplay/questions/ComputedStyle.d.ts +131 -0
  255. package/esm/screenplay/questions/ComputedStyle.d.ts.map +1 -0
  256. package/esm/screenplay/questions/ComputedStyle.js +157 -0
  257. package/esm/screenplay/questions/ComputedStyle.js.map +1 -0
  258. package/esm/screenplay/questions/CssClasses.d.ts +110 -0
  259. package/esm/screenplay/questions/CssClasses.d.ts.map +1 -0
  260. package/esm/screenplay/questions/CssClasses.js +121 -0
  261. package/esm/screenplay/questions/CssClasses.js.map +1 -0
  262. package/esm/screenplay/questions/LastScriptExecution.d.ts +50 -0
  263. package/esm/screenplay/questions/LastScriptExecution.d.ts.map +1 -0
  264. package/esm/screenplay/questions/LastScriptExecution.js +56 -0
  265. package/esm/screenplay/questions/LastScriptExecution.js.map +1 -0
  266. package/esm/screenplay/questions/Selected.d.ts +216 -0
  267. package/esm/screenplay/questions/Selected.d.ts.map +1 -0
  268. package/esm/screenplay/questions/Selected.js +247 -0
  269. package/esm/screenplay/questions/Selected.js.map +1 -0
  270. package/esm/screenplay/questions/Text.d.ts +116 -0
  271. package/esm/screenplay/questions/Text.d.ts.map +1 -0
  272. package/esm/screenplay/questions/Text.js +121 -0
  273. package/esm/screenplay/questions/Text.js.map +1 -0
  274. package/esm/screenplay/questions/Value.d.ts +70 -0
  275. package/esm/screenplay/questions/Value.d.ts.map +1 -0
  276. package/esm/screenplay/questions/Value.js +75 -0
  277. package/esm/screenplay/questions/Value.js.map +1 -0
  278. package/esm/screenplay/questions/index.d.ts +8 -0
  279. package/esm/screenplay/questions/index.d.ts.map +1 -0
  280. package/esm/screenplay/questions/index.js +8 -0
  281. package/esm/screenplay/questions/index.js.map +1 -0
  282. package/esm/scripts/dragAndDrop.d.ts +13 -0
  283. package/esm/scripts/dragAndDrop.d.ts.map +1 -0
  284. package/esm/scripts/dragAndDrop.js +72 -0
  285. package/esm/scripts/dragAndDrop.js.map +1 -0
  286. package/esm/scripts/index.d.ts +4 -0
  287. package/esm/scripts/index.d.ts.map +1 -0
  288. package/esm/scripts/index.js +4 -0
  289. package/esm/scripts/index.js.map +1 -0
  290. package/esm/scripts/isVisible.d.ts +2 -0
  291. package/esm/scripts/isVisible.d.ts.map +1 -0
  292. package/esm/scripts/isVisible.js +92 -0
  293. package/esm/scripts/isVisible.js.map +1 -0
  294. package/esm/scripts/rehydrate.d.ts +5 -0
  295. package/esm/scripts/rehydrate.d.ts.map +1 -0
  296. package/esm/scripts/rehydrate.js +31 -0
  297. package/esm/scripts/rehydrate.js.map +1 -0
  298. package/esm/stage/crew/index.d.ts +2 -0
  299. package/esm/stage/crew/index.d.ts.map +1 -0
  300. package/esm/stage/crew/index.js +2 -0
  301. package/esm/stage/crew/index.js.map +1 -0
  302. package/esm/stage/crew/photographer/Photographer.d.ts +189 -0
  303. package/esm/stage/crew/photographer/Photographer.d.ts.map +1 -0
  304. package/esm/stage/crew/photographer/Photographer.js +215 -0
  305. package/esm/stage/crew/photographer/Photographer.js.map +1 -0
  306. package/esm/stage/crew/photographer/index.d.ts +3 -0
  307. package/esm/stage/crew/photographer/index.d.ts.map +1 -0
  308. package/esm/stage/crew/photographer/index.js +3 -0
  309. package/esm/stage/crew/photographer/index.js.map +1 -0
  310. package/esm/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +29 -0
  311. package/esm/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts.map +1 -0
  312. package/esm/stage/crew/photographer/strategies/PhotoTakingStrategy.js +64 -0
  313. package/esm/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +1 -0
  314. package/esm/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +19 -0
  315. package/esm/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts.map +1 -0
  316. package/esm/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +25 -0
  317. package/esm/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +1 -0
  318. package/esm/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +19 -0
  319. package/esm/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts.map +1 -0
  320. package/esm/stage/crew/photographer/strategies/TakePhotosOfFailures.js +24 -0
  321. package/esm/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +1 -0
  322. package/esm/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +20 -0
  323. package/esm/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts.map +1 -0
  324. package/esm/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +23 -0
  325. package/esm/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +1 -0
  326. package/esm/stage/crew/photographer/strategies/index.d.ts +5 -0
  327. package/esm/stage/crew/photographer/strategies/index.d.ts.map +1 -0
  328. package/esm/stage/crew/photographer/strategies/index.js +5 -0
  329. package/esm/stage/crew/photographer/strategies/index.js.map +1 -0
  330. package/esm/stage/index.d.ts +2 -0
  331. package/esm/stage/index.d.ts.map +1 -0
  332. package/esm/stage/index.js +2 -0
  333. package/esm/stage/index.js.map +1 -0
  334. package/lib/errors/index.d.ts +3 -3
  335. package/lib/errors/index.d.ts.map +1 -1
  336. package/lib/errors/index.js +3 -3
  337. package/lib/errors/index.js.map +1 -1
  338. package/lib/expectations/index.d.ts +5 -5
  339. package/lib/expectations/index.d.ts.map +1 -1
  340. package/lib/expectations/index.js +5 -5
  341. package/lib/expectations/index.js.map +1 -1
  342. package/lib/expectations/isActive.d.ts +1 -1
  343. package/lib/expectations/isActive.d.ts.map +1 -1
  344. package/lib/expectations/isClickable.d.ts +1 -1
  345. package/lib/expectations/isClickable.d.ts.map +1 -1
  346. package/lib/expectations/isEnabled.d.ts +1 -1
  347. package/lib/expectations/isEnabled.d.ts.map +1 -1
  348. package/lib/expectations/isSelected.d.ts +1 -1
  349. package/lib/expectations/isSelected.d.ts.map +1 -1
  350. package/lib/expectations/isVisible.d.ts +1 -1
  351. package/lib/expectations/isVisible.d.ts.map +1 -1
  352. package/lib/index.d.ts +4 -4
  353. package/lib/index.d.ts.map +1 -1
  354. package/lib/index.js +4 -4
  355. package/lib/index.js.map +1 -1
  356. package/lib/package.json +1 -0
  357. package/lib/screenplay/abilities/BrowseTheWeb.d.ts +1 -1
  358. package/lib/screenplay/abilities/BrowseTheWeb.d.ts.map +1 -1
  359. package/lib/screenplay/abilities/index.d.ts +1 -1
  360. package/lib/screenplay/abilities/index.d.ts.map +1 -1
  361. package/lib/screenplay/abilities/index.js +1 -1
  362. package/lib/screenplay/abilities/index.js.map +1 -1
  363. package/lib/screenplay/index.d.ts +4 -4
  364. package/lib/screenplay/index.d.ts.map +1 -1
  365. package/lib/screenplay/index.js +4 -4
  366. package/lib/screenplay/index.js.map +1 -1
  367. package/lib/screenplay/interactions/Clear.d.ts +2 -2
  368. package/lib/screenplay/interactions/Clear.d.ts.map +1 -1
  369. package/lib/screenplay/interactions/Clear.js +2 -2
  370. package/lib/screenplay/interactions/Clear.js.map +1 -1
  371. package/lib/screenplay/interactions/Click.d.ts +2 -2
  372. package/lib/screenplay/interactions/Click.d.ts.map +1 -1
  373. package/lib/screenplay/interactions/Click.js +2 -2
  374. package/lib/screenplay/interactions/Click.js.map +1 -1
  375. package/lib/screenplay/interactions/DoubleClick.d.ts +2 -2
  376. package/lib/screenplay/interactions/DoubleClick.d.ts.map +1 -1
  377. package/lib/screenplay/interactions/DoubleClick.js +2 -2
  378. package/lib/screenplay/interactions/DoubleClick.js.map +1 -1
  379. package/lib/screenplay/interactions/Drag.d.ts +1 -1
  380. package/lib/screenplay/interactions/Drag.d.ts.map +1 -1
  381. package/lib/screenplay/interactions/Enter.d.ts +2 -2
  382. package/lib/screenplay/interactions/Enter.d.ts.map +1 -1
  383. package/lib/screenplay/interactions/Enter.js +3 -3
  384. package/lib/screenplay/interactions/Enter.js.map +1 -1
  385. package/lib/screenplay/interactions/ExecuteScript.js +6 -6
  386. package/lib/screenplay/interactions/ExecuteScript.js.map +1 -1
  387. package/lib/screenplay/interactions/Hover.d.ts +2 -2
  388. package/lib/screenplay/interactions/Hover.d.ts.map +1 -1
  389. package/lib/screenplay/interactions/Hover.js +2 -2
  390. package/lib/screenplay/interactions/Hover.js.map +1 -1
  391. package/lib/screenplay/interactions/Navigate.js +5 -5
  392. package/lib/screenplay/interactions/Navigate.js.map +1 -1
  393. package/lib/screenplay/interactions/PageElementInteraction.d.ts +2 -2
  394. package/lib/screenplay/interactions/PageElementInteraction.d.ts.map +1 -1
  395. package/lib/screenplay/interactions/Press.d.ts +3 -3
  396. package/lib/screenplay/interactions/Press.d.ts.map +1 -1
  397. package/lib/screenplay/interactions/Press.js +9 -9
  398. package/lib/screenplay/interactions/Press.js.map +1 -1
  399. package/lib/screenplay/interactions/RightClick.d.ts +2 -2
  400. package/lib/screenplay/interactions/RightClick.d.ts.map +1 -1
  401. package/lib/screenplay/interactions/RightClick.js +2 -2
  402. package/lib/screenplay/interactions/RightClick.js.map +1 -1
  403. package/lib/screenplay/interactions/Scroll.d.ts +1 -1
  404. package/lib/screenplay/interactions/Scroll.d.ts.map +1 -1
  405. package/lib/screenplay/interactions/Select.d.ts +1 -1
  406. package/lib/screenplay/interactions/Select.d.ts.map +1 -1
  407. package/lib/screenplay/interactions/Select.js +8 -9
  408. package/lib/screenplay/interactions/Select.js.map +1 -1
  409. package/lib/screenplay/interactions/Switch.d.ts +1 -1
  410. package/lib/screenplay/interactions/Switch.d.ts.map +1 -1
  411. package/lib/screenplay/interactions/TakeScreenshot.js +3 -3
  412. package/lib/screenplay/interactions/TakeScreenshot.js.map +1 -1
  413. package/lib/screenplay/interactions/index.d.ts +15 -15
  414. package/lib/screenplay/interactions/index.d.ts.map +1 -1
  415. package/lib/screenplay/interactions/index.js +15 -15
  416. package/lib/screenplay/interactions/index.js.map +1 -1
  417. package/lib/screenplay/models/ArgumentDehydrator.js +1 -1
  418. package/lib/screenplay/models/ArgumentDehydrator.js.map +1 -1
  419. package/lib/screenplay/models/BrowsingSession.d.ts +3 -3
  420. package/lib/screenplay/models/BrowsingSession.d.ts.map +1 -1
  421. package/lib/screenplay/models/Cookie.d.ts +1 -1
  422. package/lib/screenplay/models/Cookie.d.ts.map +1 -1
  423. package/lib/screenplay/models/Cookie.js +6 -6
  424. package/lib/screenplay/models/Cookie.js.map +1 -1
  425. package/lib/screenplay/models/Key.d.ts +5 -0
  426. package/lib/screenplay/models/Key.d.ts.map +1 -1
  427. package/lib/screenplay/models/Key.js +13 -2
  428. package/lib/screenplay/models/Key.js.map +1 -1
  429. package/lib/screenplay/models/Locator.d.ts +3 -3
  430. package/lib/screenplay/models/Locator.d.ts.map +1 -1
  431. package/lib/screenplay/models/Locator.js +9 -9
  432. package/lib/screenplay/models/Locator.js.map +1 -1
  433. package/lib/screenplay/models/Page.d.ts +12 -12
  434. package/lib/screenplay/models/Page.d.ts.map +1 -1
  435. package/lib/screenplay/models/Page.js +5 -5
  436. package/lib/screenplay/models/Page.js.map +1 -1
  437. package/lib/screenplay/models/PageElement.d.ts +5 -5
  438. package/lib/screenplay/models/PageElement.d.ts.map +1 -1
  439. package/lib/screenplay/models/PageElement.js +3 -3
  440. package/lib/screenplay/models/PageElement.js.map +1 -1
  441. package/lib/screenplay/models/PageElements.d.ts +2 -2
  442. package/lib/screenplay/models/PageElements.d.ts.map +1 -1
  443. package/lib/screenplay/models/PageElements.js +2 -2
  444. package/lib/screenplay/models/PageElements.js.map +1 -1
  445. package/lib/screenplay/models/PageElementsLocator.d.ts +3 -3
  446. package/lib/screenplay/models/PageElementsLocator.d.ts.map +1 -1
  447. package/lib/screenplay/models/PageElementsLocator.js +2 -2
  448. package/lib/screenplay/models/PageElementsLocator.js.map +1 -1
  449. package/lib/screenplay/models/RootLocator.js +1 -1
  450. package/lib/screenplay/models/RootLocator.js.map +1 -1
  451. package/lib/screenplay/models/Switchable.d.ts +1 -1
  452. package/lib/screenplay/models/Switchable.d.ts.map +1 -1
  453. package/lib/screenplay/models/dialogs/AbsentModalDialog.d.ts +1 -1
  454. package/lib/screenplay/models/dialogs/AbsentModalDialog.d.ts.map +1 -1
  455. package/lib/screenplay/models/dialogs/AbsentModalDialog.js +2 -2
  456. package/lib/screenplay/models/dialogs/AbsentModalDialog.js.map +1 -1
  457. package/lib/screenplay/models/dialogs/AcceptedModalDialog.d.ts +1 -1
  458. package/lib/screenplay/models/dialogs/AcceptedModalDialog.d.ts.map +1 -1
  459. package/lib/screenplay/models/dialogs/AcceptedModalDialog.js +2 -2
  460. package/lib/screenplay/models/dialogs/AcceptedModalDialog.js.map +1 -1
  461. package/lib/screenplay/models/dialogs/DismissedModalDialog.d.ts +1 -1
  462. package/lib/screenplay/models/dialogs/DismissedModalDialog.d.ts.map +1 -1
  463. package/lib/screenplay/models/dialogs/DismissedModalDialog.js +2 -2
  464. package/lib/screenplay/models/dialogs/DismissedModalDialog.js.map +1 -1
  465. package/lib/screenplay/models/dialogs/ModalDialog.js +7 -7
  466. package/lib/screenplay/models/dialogs/ModalDialog.js.map +1 -1
  467. package/lib/screenplay/models/dialogs/ModalDialogHandler.d.ts +1 -1
  468. package/lib/screenplay/models/dialogs/ModalDialogHandler.d.ts.map +1 -1
  469. package/lib/screenplay/models/dialogs/ModalDialogHandler.js +2 -2
  470. package/lib/screenplay/models/dialogs/ModalDialogHandler.js.map +1 -1
  471. package/lib/screenplay/models/dialogs/index.d.ts +5 -5
  472. package/lib/screenplay/models/dialogs/index.d.ts.map +1 -1
  473. package/lib/screenplay/models/dialogs/index.js +5 -5
  474. package/lib/screenplay/models/dialogs/index.js.map +1 -1
  475. package/lib/screenplay/models/index.d.ts +17 -17
  476. package/lib/screenplay/models/index.d.ts.map +1 -1
  477. package/lib/screenplay/models/index.js +17 -17
  478. package/lib/screenplay/models/index.js.map +1 -1
  479. package/lib/screenplay/models/selectors/By.d.ts +7 -7
  480. package/lib/screenplay/models/selectors/By.d.ts.map +1 -1
  481. package/lib/screenplay/models/selectors/By.js +14 -14
  482. package/lib/screenplay/models/selectors/By.js.map +1 -1
  483. package/lib/screenplay/models/selectors/ByCss.d.ts +1 -1
  484. package/lib/screenplay/models/selectors/ByCss.d.ts.map +1 -1
  485. package/lib/screenplay/models/selectors/ByCss.js +2 -2
  486. package/lib/screenplay/models/selectors/ByCss.js.map +1 -1
  487. package/lib/screenplay/models/selectors/ByCssContainingText.d.ts +1 -1
  488. package/lib/screenplay/models/selectors/ByCssContainingText.d.ts.map +1 -1
  489. package/lib/screenplay/models/selectors/ByCssContainingText.js +2 -2
  490. package/lib/screenplay/models/selectors/ByCssContainingText.js.map +1 -1
  491. package/lib/screenplay/models/selectors/ByDeepCss.d.ts +1 -1
  492. package/lib/screenplay/models/selectors/ByDeepCss.d.ts.map +1 -1
  493. package/lib/screenplay/models/selectors/ByDeepCss.js +2 -2
  494. package/lib/screenplay/models/selectors/ByDeepCss.js.map +1 -1
  495. package/lib/screenplay/models/selectors/ById.d.ts +1 -1
  496. package/lib/screenplay/models/selectors/ById.d.ts.map +1 -1
  497. package/lib/screenplay/models/selectors/ById.js +2 -2
  498. package/lib/screenplay/models/selectors/ById.js.map +1 -1
  499. package/lib/screenplay/models/selectors/ByRole.d.ts +1 -1
  500. package/lib/screenplay/models/selectors/ByRole.d.ts.map +1 -1
  501. package/lib/screenplay/models/selectors/ByRole.js +2 -2
  502. package/lib/screenplay/models/selectors/ByRole.js.map +1 -1
  503. package/lib/screenplay/models/selectors/ByTagName.d.ts +1 -1
  504. package/lib/screenplay/models/selectors/ByTagName.d.ts.map +1 -1
  505. package/lib/screenplay/models/selectors/ByTagName.js +2 -2
  506. package/lib/screenplay/models/selectors/ByTagName.js.map +1 -1
  507. package/lib/screenplay/models/selectors/ByXPath.d.ts +1 -1
  508. package/lib/screenplay/models/selectors/ByXPath.d.ts.map +1 -1
  509. package/lib/screenplay/models/selectors/ByXPath.js +2 -2
  510. package/lib/screenplay/models/selectors/ByXPath.js.map +1 -1
  511. package/lib/screenplay/models/selectors/index.d.ts +9 -9
  512. package/lib/screenplay/models/selectors/index.d.ts.map +1 -1
  513. package/lib/screenplay/models/selectors/index.js +9 -9
  514. package/lib/screenplay/models/selectors/index.js.map +1 -1
  515. package/lib/screenplay/questions/Attribute.d.ts +1 -1
  516. package/lib/screenplay/questions/Attribute.d.ts.map +1 -1
  517. package/lib/screenplay/questions/Attribute.js +2 -2
  518. package/lib/screenplay/questions/Attribute.js.map +1 -1
  519. package/lib/screenplay/questions/ComputedStyle.d.ts +1 -1
  520. package/lib/screenplay/questions/ComputedStyle.d.ts.map +1 -1
  521. package/lib/screenplay/questions/ComputedStyle.js +4 -4
  522. package/lib/screenplay/questions/ComputedStyle.js.map +1 -1
  523. package/lib/screenplay/questions/CssClasses.d.ts +1 -1
  524. package/lib/screenplay/questions/CssClasses.d.ts.map +1 -1
  525. package/lib/screenplay/questions/CssClasses.js +2 -2
  526. package/lib/screenplay/questions/CssClasses.js.map +1 -1
  527. package/lib/screenplay/questions/LastScriptExecution.js +2 -2
  528. package/lib/screenplay/questions/LastScriptExecution.js.map +1 -1
  529. package/lib/screenplay/questions/Selected.d.ts +1 -1
  530. package/lib/screenplay/questions/Selected.d.ts.map +1 -1
  531. package/lib/screenplay/questions/Text.d.ts +2 -2
  532. package/lib/screenplay/questions/Text.d.ts.map +1 -1
  533. package/lib/screenplay/questions/Text.js +3 -3
  534. package/lib/screenplay/questions/Text.js.map +1 -1
  535. package/lib/screenplay/questions/Value.d.ts +1 -1
  536. package/lib/screenplay/questions/Value.d.ts.map +1 -1
  537. package/lib/screenplay/questions/Value.js +2 -2
  538. package/lib/screenplay/questions/Value.js.map +1 -1
  539. package/lib/screenplay/questions/index.d.ts +7 -7
  540. package/lib/screenplay/questions/index.d.ts.map +1 -1
  541. package/lib/screenplay/questions/index.js +7 -7
  542. package/lib/screenplay/questions/index.js.map +1 -1
  543. package/lib/scripts/index.d.ts +3 -3
  544. package/lib/scripts/index.d.ts.map +1 -1
  545. package/lib/scripts/index.js +3 -3
  546. package/lib/scripts/index.js.map +1 -1
  547. package/lib/stage/crew/index.d.ts +1 -1
  548. package/lib/stage/crew/index.d.ts.map +1 -1
  549. package/lib/stage/crew/index.js +1 -1
  550. package/lib/stage/crew/index.js.map +1 -1
  551. package/lib/stage/crew/photographer/Photographer.d.ts +3 -3
  552. package/lib/stage/crew/photographer/Photographer.d.ts.map +1 -1
  553. package/lib/stage/crew/photographer/Photographer.js +2 -2
  554. package/lib/stage/crew/photographer/Photographer.js.map +1 -1
  555. package/lib/stage/crew/photographer/index.d.ts +2 -2
  556. package/lib/stage/crew/photographer/index.d.ts.map +1 -1
  557. package/lib/stage/crew/photographer/index.js +2 -2
  558. package/lib/stage/crew/photographer/index.js.map +1 -1
  559. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +1 -1
  560. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts.map +1 -1
  561. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +4 -4
  562. package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +1 -1
  563. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +3 -3
  564. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts.map +1 -1
  565. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +3 -3
  566. package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +1 -1
  567. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +3 -3
  568. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts.map +1 -1
  569. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +4 -4
  570. package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +1 -1
  571. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +3 -3
  572. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts.map +1 -1
  573. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +3 -3
  574. package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +1 -1
  575. package/lib/stage/crew/photographer/strategies/index.d.ts +4 -4
  576. package/lib/stage/crew/photographer/strategies/index.d.ts.map +1 -1
  577. package/lib/stage/crew/photographer/strategies/index.js +4 -4
  578. package/lib/stage/crew/photographer/strategies/index.js.map +1 -1
  579. package/lib/stage/index.d.ts +1 -1
  580. package/lib/stage/index.d.ts.map +1 -1
  581. package/lib/stage/index.js +1 -1
  582. package/lib/stage/index.js.map +1 -1
  583. package/package.json +48 -7
  584. package/src/errors/index.ts +3 -3
  585. package/src/expectations/index.ts +5 -5
  586. package/src/expectations/isActive.ts +1 -1
  587. package/src/expectations/isClickable.ts +1 -1
  588. package/src/expectations/isEnabled.ts +1 -1
  589. package/src/expectations/isSelected.ts +1 -1
  590. package/src/expectations/isVisible.ts +1 -1
  591. package/src/index.ts +4 -4
  592. package/src/screenplay/abilities/BrowseTheWeb.ts +1 -1
  593. package/src/screenplay/abilities/index.ts +1 -1
  594. package/src/screenplay/index.ts +4 -4
  595. package/src/screenplay/interactions/Clear.ts +2 -2
  596. package/src/screenplay/interactions/Click.ts +2 -2
  597. package/src/screenplay/interactions/DoubleClick.ts +2 -2
  598. package/src/screenplay/interactions/Drag.ts +1 -1
  599. package/src/screenplay/interactions/Enter.ts +3 -3
  600. package/src/screenplay/interactions/ExecuteScript.ts +3 -3
  601. package/src/screenplay/interactions/Hover.ts +2 -2
  602. package/src/screenplay/interactions/Navigate.ts +1 -1
  603. package/src/screenplay/interactions/PageElementInteraction.ts +2 -2
  604. package/src/screenplay/interactions/Press.ts +5 -5
  605. package/src/screenplay/interactions/RightClick.ts +94 -94
  606. package/src/screenplay/interactions/Scroll.ts +1 -1
  607. package/src/screenplay/interactions/Select.ts +3 -4
  608. package/src/screenplay/interactions/Switch.ts +1 -1
  609. package/src/screenplay/interactions/TakeScreenshot.ts +2 -2
  610. package/src/screenplay/interactions/index.ts +15 -15
  611. package/src/screenplay/models/ArgumentDehydrator.ts +1 -1
  612. package/src/screenplay/models/BrowsingSession.ts +3 -3
  613. package/src/screenplay/models/Cookie.ts +3 -3
  614. package/src/screenplay/models/Key.ts +14 -2
  615. package/src/screenplay/models/Locator.ts +4 -4
  616. package/src/screenplay/models/Page.ts +13 -13
  617. package/src/screenplay/models/PageElement.ts +6 -6
  618. package/src/screenplay/models/PageElements.ts +3 -3
  619. package/src/screenplay/models/PageElementsLocator.ts +4 -4
  620. package/src/screenplay/models/RootLocator.ts +1 -1
  621. package/src/screenplay/models/Switchable.ts +1 -1
  622. package/src/screenplay/models/dialogs/AbsentModalDialog.ts +1 -1
  623. package/src/screenplay/models/dialogs/AcceptedModalDialog.ts +1 -1
  624. package/src/screenplay/models/dialogs/DismissedModalDialog.ts +1 -1
  625. package/src/screenplay/models/dialogs/ModalDialog.ts +1 -1
  626. package/src/screenplay/models/dialogs/ModalDialogHandler.ts +2 -2
  627. package/src/screenplay/models/dialogs/index.ts +5 -5
  628. package/src/screenplay/models/index.ts +17 -17
  629. package/src/screenplay/models/selectors/By.ts +8 -8
  630. package/src/screenplay/models/selectors/ByCss.ts +1 -1
  631. package/src/screenplay/models/selectors/ByCssContainingText.ts +1 -1
  632. package/src/screenplay/models/selectors/ByDeepCss.ts +1 -1
  633. package/src/screenplay/models/selectors/ById.ts +1 -1
  634. package/src/screenplay/models/selectors/ByRole.ts +1 -1
  635. package/src/screenplay/models/selectors/ByTagName.ts +1 -1
  636. package/src/screenplay/models/selectors/ByXPath.ts +1 -1
  637. package/src/screenplay/models/selectors/index.ts +9 -9
  638. package/src/screenplay/questions/Attribute.ts +1 -1
  639. package/src/screenplay/questions/ComputedStyle.ts +2 -2
  640. package/src/screenplay/questions/CssClasses.ts +1 -1
  641. package/src/screenplay/questions/LastScriptExecution.ts +1 -1
  642. package/src/screenplay/questions/Selected.ts +1 -1
  643. package/src/screenplay/questions/Text.ts +3 -3
  644. package/src/screenplay/questions/Value.ts +1 -1
  645. package/src/screenplay/questions/index.ts +7 -7
  646. package/src/scripts/index.ts +3 -3
  647. package/src/stage/crew/index.ts +1 -1
  648. package/src/stage/crew/photographer/Photographer.ts +4 -4
  649. package/src/stage/crew/photographer/index.ts +2 -2
  650. package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +4 -4
  651. package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +3 -3
  652. package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +4 -4
  653. package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +3 -3
  654. package/src/stage/crew/photographer/strategies/index.ts +4 -4
  655. package/src/stage/index.ts +1 -1
  656. package/tsconfig-cjs.build.json +18 -0
  657. package/tsconfig-esm.build.json +18 -0
@@ -0,0 +1,173 @@
1
+ import { the } from '@serenity-js/core';
2
+ import { Page } from '../Page.js';
3
+ /**
4
+ * Manages interactions with JavaScript modal dialog windows,
5
+ * triggered by [window.alert](https://developer.mozilla.org/en-US/docs/Web/API/Window/alert),
6
+ * [window.confirm](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm),
7
+ * or [`window.prompt`](https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt),
8
+ * and stores their `message` so that it can be asserted on once the dialog is handled.
9
+ *
10
+ * Note that in order to make handling modal windows
11
+ * consistent across the various Web integration tools (such as Playwright, Puppeteer,
12
+ * WebdriverIO or Selenium), Serenity/JS works as follows:
13
+ * - Serenity/JS dismisses any modal dialogs by default and stores their message so that it can be asserted on.
14
+ * - This behaviour can be changed by invoking [`ModalDialog.acceptNext`](https://serenity-js.org/api/web/class/ModalDialog/#acceptNext),
15
+ * [`ModalDialog.acceptNextWithValue`](https://serenity-js.org/api/web/class/ModalDialog/#acceptNextWithValue),
16
+ * or [`ModalDialog.dismissNext`](https://serenity-js.org/api/web/class/ModalDialog/#dismissNext)
17
+ * before the dialog is triggered, as per the below examples.
18
+ * - Serenity/JS also allows you to `Wait.until(ModalDialog, isPresent())` so that you can synchronise your tests
19
+ * with modal dialogs that appear after a delay.
20
+ *
21
+ * ## Example HTML widget
22
+ *
23
+ * In the below example widget, clicking on the button results in a [confirmation dialog](https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm)
24
+ * appearing.
25
+ *
26
+ * ```html
27
+ * <button id="trigger" onclick="trigger()">Trigger Alert</button>
28
+ * <p id="result"></p>
29
+ *
30
+ * <script>
31
+ * function trigger() {
32
+ * document.getElementById("result").innerHTML = (
33
+ * function () {
34
+ * return confirm('Continue?')
35
+ * ? 'accepted'
36
+ * : 'dismissed';
37
+ * }
38
+ * )();
39
+ * }
40
+ * </script>
41
+ * ```
42
+ *
43
+ * ## Modal dialog gets dismissed by default
44
+ *
45
+ * ```ts
46
+ * import { actorCalled } from '@serenity-js/core'
47
+ * import { By, Click, Text, PageElement, ModalDialog } from '@serenity-js/web'
48
+ * import { Ensure, equals } from '@serenity-js/assertions'
49
+ *
50
+ * const Example = {
51
+ * trigger: () =>
52
+ * PageElement.located(By.id('trigger')).describedAs('the modal dialog trigger'),
53
+ *
54
+ * result: () =>
55
+ * PageElement.located(By.id('result')).describedAs('result'),
56
+ * }
57
+ *
58
+ * await actorCalled('Nick').attemptsTo(
59
+ * Click.on(Example.trigger()),
60
+ *
61
+ * Ensure.that(ModalDialog.lastDialogState(), equals('dismissed')),
62
+ *
63
+ * Ensure.that(Text.of(Example.result()), equals('dismissed')),
64
+ * )
65
+ * ```
66
+ *
67
+ * ## Changing modal dialog handler
68
+ *
69
+ * ```ts
70
+ * import { actorCalled } from '@serenity-js/core'
71
+ * import { By, Click, Text, PageElement, ModalDialog } from '@serenity-js/web'
72
+ * import { Ensure, equals } from '@serenity-js/assertions'
73
+ *
74
+ * const Example = {
75
+ * trigger: () =>
76
+ * PageElement.located(By.id('trigger')).describedAs('the modal dialog trigger'),
77
+ *
78
+ * result: () =>
79
+ * PageElement.located(By.id('result')).describedAs('result'),
80
+ * }
81
+ *
82
+ * await actorCalled('Nick').attemptsTo(
83
+ * ModalDialog.acceptNext(),
84
+ * // or: ModalDialog.acceptNextWithValue('some value'),
85
+ * // or: ModalDialog.dismissNext(),
86
+ *
87
+ * Click.on(Example.trigger),
88
+ *
89
+ * Ensure.that(ModalDialog.lastDialogState(), equals('accepted')),
90
+ *
91
+ * Ensure.that(Text.of(Example.result), equals('accepted')),
92
+ * )
93
+ * ```
94
+ *
95
+ * ## Learn more
96
+ * - [`Optional`](https://serenity-js.org/api/core/interface/Optional/)
97
+ *
98
+ * @group Models
99
+ */
100
+ export class ModalDialog {
101
+ /**
102
+ * Returns a promise that resolves to `true`
103
+ * when a modal dialog has been handled, so accepted or dismissed.
104
+ * Returns `false` for dialogs that haven't been handled yet.
105
+ *
106
+ * Useful when a JavaScript modal dialog is generated after a delay,
107
+ * e.g. triggered by `setTimeout`.
108
+ *
109
+ * #### Example usage
110
+ *
111
+ * ```ts
112
+ * import { actorCalled, Wait } from '@serenity-js/core'
113
+ * import { Ensure, equals, isPresent } from '@serenity-js/assertions'
114
+ * import { ModalDialog } from '@serenity-js/web'
115
+ *
116
+ * await actorCalled('Nick').attemptsTo(
117
+ * ModalDialog.acceptNext(),
118
+ * Wait.until(ModalDialog, isPresent()),
119
+ * Ensure.that(ModalDialog.lastDialogState(), equals('accepted')),
120
+ * )
121
+ * ```
122
+ */
123
+ static isPresent() {
124
+ return Page.current().modalDialog().last().isPresent();
125
+ }
126
+ /**
127
+ * Produces an [interaction](https://serenity-js.org/api/core/class/Interaction/) that invokes [`ModalDialog.acceptNext`](https://serenity-js.org/api/web/class/ModalDialog/#acceptNext).
128
+ */
129
+ static acceptNext() {
130
+ return Page.current().modalDialog().acceptNext()
131
+ .describedAs('#actor accepts next modal dialog window');
132
+ }
133
+ /**
134
+ * Produces an [interaction](https://serenity-js.org/api/core/class/Interaction/) that invokes [`ModalDialog.acceptNextWithValue`](https://serenity-js.org/api/web/class/ModalDialog/#acceptNextWithValue).
135
+ *
136
+ * @param value
137
+ */
138
+ static acceptNextWithValue(value) {
139
+ return Page.current().modalDialog().acceptNextWithValue(value)
140
+ .describedAs(the `#actor accepts next modal dialog window with value ${value}`);
141
+ }
142
+ /**
143
+ * Produces an [interaction](https://serenity-js.org/api/core/class/Interaction/) that invokes [`ModalDialog.dismissNext`](https://serenity-js.org/api/web/class/ModalDialog/#dismissNext).
144
+ */
145
+ static dismissNext() {
146
+ return Page.current().modalDialog().dismissNext()
147
+ .describedAs(the `#actor dismisses next modal dialog window`);
148
+ }
149
+ /**
150
+ * [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter) that resolves to [`ModalDialog.message`](https://serenity-js.org/api/web/class/ModalDialog/#message) for the current [`Page`](https://serenity-js.org/api/web/class/Page/).
151
+ */
152
+ static lastDialogMessage() {
153
+ return Page.current().modalDialog().last().message()
154
+ .describedAs(`last dialog message`);
155
+ }
156
+ /**
157
+ * [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter) that resolves to [`ModalDialog.state`](https://serenity-js.org/api/web/class/ModalDialog/#state) for the current [`Page`](https://serenity-js.org/api/web/class/Page/).
158
+ */
159
+ static lastDialogState() {
160
+ return Page.current().modalDialog().last().state()
161
+ .describedAs(`last dialog state`);
162
+ }
163
+ /**
164
+ * Returns `accepted` or `dismissed` for dialogs that have been handled,
165
+ * or `absent` for those that haven't been handled yet.
166
+ */
167
+ state() {
168
+ return this.constructor.name
169
+ .replace('ModalDialog', '')
170
+ .toLowerCase();
171
+ }
172
+ }
173
+ //# sourceMappingURL=ModalDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalDialog.js","sourceRoot":"","sources":["../../../../src/screenplay/models/dialogs/ModalDialog.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,MAAM,OAAgB,WAAW;IAE7B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE;aAC3C,WAAW,CAAC,yCAAyC,CAAC,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAkC;QACzD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC;aACzD,WAAW,CAAC,GAAG,CAAA,sDAAuD,KAAM,EAAE,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QACd,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE;aAC5C,WAAW,CAAC,GAAG,CAAA,2CAA2C,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;aAC/C,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe;QAClB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;aAC7C,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAC1C,CAAC;IAwBD;;;OAGG;IACH,KAAK;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI;aACvB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;aAC1B,WAAW,EAAE,CAAC;IACvB,CAAC;CACJ"}
@@ -0,0 +1,38 @@
1
+ import type { ModalDialog } from './ModalDialog.js';
2
+ /**
3
+ * Represent the strategy to use with any upcoming [`ModalDialog`](https://serenity-js.org/api/web/class/ModalDialog/) windows.
4
+ *
5
+ * ## Learn more
6
+ *
7
+ * - [`ModalDialog`](https://serenity-js.org/api/web/class/ModalDialog/)
8
+ * - [`Page.modalDialog`](https://serenity-js.org/api/web/class/Page/#modalDialog)
9
+ *
10
+ * @group Models
11
+ */
12
+ export declare abstract class ModalDialogHandler {
13
+ protected modalDialog: ModalDialog;
14
+ protected constructor(modalDialog?: ModalDialog);
15
+ /**
16
+ * Configures the handler to accept the next JavaScript modal dialog.
17
+ */
18
+ abstract acceptNext(): Promise<void>;
19
+ /**
20
+ * Configures the handler to accept the next JavaScript `prompt``
21
+ * with a given `text` value.
22
+ */
23
+ abstract acceptNextWithValue(text: string | number): Promise<void>;
24
+ /**
25
+ * Configures the handler to dismiss the next JavaScript modal dialog.
26
+ */
27
+ abstract dismissNext(): Promise<void>;
28
+ /**
29
+ * Resets the handler to its default state.
30
+ */
31
+ abstract reset(): Promise<void>;
32
+ /**
33
+ * Returns the most recently handled [`ModalDialog`](https://serenity-js.org/api/web/class/ModalDialog/),
34
+ * or [`AbsentModalDialog`](https://serenity-js.org/api/web/class/AbsentModalDialog/) when no dialogs have been handled yet.
35
+ */
36
+ last(): Promise<ModalDialog>;
37
+ }
38
+ //# sourceMappingURL=ModalDialogHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalDialogHandler.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/dialogs/ModalDialogHandler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;GASG;AACH,8BAAsB,kBAAkB;IAEd,SAAS,CAAC,WAAW,EAAE,WAAW;IAAxD,SAAS,aAAuB,WAAW,GAAE,WAAqC;IAIlF;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAElE;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;CAGrC"}
@@ -0,0 +1,27 @@
1
+ import { ensure, isDefined } from 'tiny-types';
2
+ import { AbsentModalDialog } from './AbsentModalDialog.js';
3
+ /**
4
+ * Represent the strategy to use with any upcoming [`ModalDialog`](https://serenity-js.org/api/web/class/ModalDialog/) windows.
5
+ *
6
+ * ## Learn more
7
+ *
8
+ * - [`ModalDialog`](https://serenity-js.org/api/web/class/ModalDialog/)
9
+ * - [`Page.modalDialog`](https://serenity-js.org/api/web/class/Page/#modalDialog)
10
+ *
11
+ * @group Models
12
+ */
13
+ export class ModalDialogHandler {
14
+ modalDialog;
15
+ constructor(modalDialog = new AbsentModalDialog()) {
16
+ this.modalDialog = modalDialog;
17
+ ensure('modalDialog', modalDialog, isDefined());
18
+ }
19
+ /**
20
+ * Returns the most recently handled [`ModalDialog`](https://serenity-js.org/api/web/class/ModalDialog/),
21
+ * or [`AbsentModalDialog`](https://serenity-js.org/api/web/class/AbsentModalDialog/) when no dialogs have been handled yet.
22
+ */
23
+ async last() {
24
+ return this.modalDialog;
25
+ }
26
+ }
27
+ //# sourceMappingURL=ModalDialogHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalDialogHandler.js","sourceRoot":"","sources":["../../../../src/screenplay/models/dialogs/ModalDialogHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D;;;;;;;;;GASG;AACH,MAAM,OAAgB,kBAAkB;IAEJ;IAAhC,YAAgC,cAA2B,IAAI,iBAAiB,EAAE;QAAlD,gBAAW,GAAX,WAAW,CAAuC;QAC9E,MAAM,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IACpD,CAAC;IAuBD;;;OAGG;IACH,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ export * from './AbsentModalDialog.js';
2
+ export * from './AcceptedModalDialog.js';
3
+ export * from './DismissedModalDialog.js';
4
+ export * from './ModalDialog.js';
5
+ export * from './ModalDialogHandler.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/dialogs/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './AbsentModalDialog.js';
2
+ export * from './AcceptedModalDialog.js';
3
+ export * from './DismissedModalDialog.js';
4
+ export * from './ModalDialog.js';
5
+ export * from './ModalDialogHandler.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/screenplay/models/dialogs/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,18 @@
1
+ export * from './ArgumentDehydrator.js';
2
+ export * from './BrowserCapabilities.js';
3
+ export * from './BrowsingSession.js';
4
+ export * from './Cookie.js';
5
+ export * from './CookieData.js';
6
+ export * from './dialogs/index.js';
7
+ export * from './Key.js';
8
+ export * from './Locator.js';
9
+ export * from './Page.js';
10
+ export * from './PageElement.js';
11
+ export * from './PageElements.js';
12
+ export * from './PageElementsLocator.js';
13
+ export * from './RootLocator.js';
14
+ export * from './SelectOption.js';
15
+ export * from './selectors/index.js';
16
+ export * from './Switchable.js';
17
+ export * from './SwitchableOrigin.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,18 @@
1
+ export * from './ArgumentDehydrator.js';
2
+ export * from './BrowserCapabilities.js';
3
+ export * from './BrowsingSession.js';
4
+ export * from './Cookie.js';
5
+ export * from './CookieData.js';
6
+ export * from './dialogs/index.js';
7
+ export * from './Key.js';
8
+ export * from './Locator.js';
9
+ export * from './Page.js';
10
+ export * from './PageElement.js';
11
+ export * from './PageElements.js';
12
+ export * from './PageElementsLocator.js';
13
+ export * from './RootLocator.js';
14
+ export * from './SelectOption.js';
15
+ export * from './selectors/index.js';
16
+ export * from './Switchable.js';
17
+ export * from './SwitchableOrigin.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screenplay/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,169 @@
1
+ import type { Answerable, WithAnswerableProperties } from '@serenity-js/core';
2
+ import { Question } from '@serenity-js/core';
3
+ import { ByCss } from './ByCss.js';
4
+ import { ByCssContainingText } from './ByCssContainingText.js';
5
+ import { ById } from './ById.js';
6
+ import type { ByRoleSelectorOptions, ByRoleSelectorValue } from './ByRole.js';
7
+ import { ByRole } from './ByRole.js';
8
+ import { ByTagName } from './ByTagName.js';
9
+ import { ByXPath } from './ByXPath.js';
10
+ /**
11
+ * `By` produces a [`Selector`](https://serenity-js.org/api/web/class/Selector/) used to locate a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) or [`PageElement`](https://serenity-js.org/api/web/class/PageElements/) on a web page.
12
+ * Selectors can be defined using a static value or a [`Question`](https://serenity-js.org/api/core/class/Question/) to be resolved at runtime.
13
+ *
14
+ * ## Defining a selector using a string
15
+ *
16
+ * Every selector method on this class accepts a static `string` value to define a selector.
17
+ *
18
+ * ```typescript
19
+ * import { PageElement, By } from '@serenity-js/web'
20
+ *
21
+ * class LoginForm {
22
+ * static usernameField = () =>
23
+ * PageElement.located(By.role('textbox', { name: 'Username' }))
24
+ * .describedAs('username field'),
25
+ *
26
+ * static passwordField = () =>
27
+ * PageElement.located(By.css('[data-test-id="password"]'))
28
+ * .describedAs('password field')
29
+ * }
30
+ * ```
31
+ *
32
+ * ## Defining a selector using a Question
33
+ *
34
+ * Each method on this class also accepts an [`Answerable`](https://serenity-js.org/api/core/#Answerable) to allow for dynamic resolution of the selector.
35
+ * This can be useful when the selector is not known at the time of writing the test, or when the selector
36
+ * needs to be calculated based on the state of the system under test.
37
+ *
38
+ * The example below demonstrates how to use [`q`](https://serenity-js.org/api/core/function/q/) to define a selector that includes a dynamic value.
39
+ *
40
+ * ```typescript
41
+ * import { q } from '@serenity-js/core'
42
+ * import { PageElement, By } from '@serenity-js/web'
43
+ *
44
+ * class FormField {
45
+ * static withTestId = (id: Answerable<string>) =>
46
+ * PageElement.located(By.css(q`input[data-test-id="${ id }"]`))
47
+ * .describedAs('form field')
48
+ * }
49
+ *
50
+ * ```
51
+ *
52
+ * ## Learn more
53
+ * - [Page Element Query Language](https://serenity-js.org/handbook/web-testing/page-element-query-language)
54
+ * - [`PageElement`](https://serenity-js.org/api/web/class/PageElement/)
55
+ * - [`PageElement`](https://serenity-js.org/api/web/class/PageElements/)
56
+ * - [`q`](https://serenity-js.org/api/core/function/q/)
57
+ *
58
+ * @group Models
59
+ */
60
+ export declare class By {
61
+ /**
62
+ * Locates a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) using a [CSS selector](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors).
63
+ *
64
+ * @param selector
65
+ */
66
+ static css(selector: Answerable<string>): Question<Promise<ByCss>>;
67
+ /**
68
+ * Locates a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) with a given [`innerText`](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/innerText)
69
+ * using a [CSS selector](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors).
70
+ *
71
+ * @param selector
72
+ * @param text
73
+ */
74
+ static cssContainingText(selector: Answerable<string>, text: Answerable<string>): Question<Promise<ByCssContainingText>>;
75
+ /**
76
+ * Locates a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) using a [CSS selector](https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Selectors)
77
+ * capable of piercing [shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM)-piercing
78
+ *
79
+ * @param selector
80
+ */
81
+ static deepCss(selector: Answerable<string>): Question<Promise<ByCss>>;
82
+ /**
83
+ * Locates a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) using its [id](https://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors).
84
+ *
85
+ * @param selector
86
+ */
87
+ static id(selector: Answerable<string>): Question<Promise<ById>>;
88
+ /**
89
+ * Locates a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) by its [ARIA role](https://www.w3.org/TR/wai-aria-1.2/#roles),
90
+ * [ARIA attributes](https://www.w3.org/TR/wai-aria-1.2/#aria-attributes) and [accessible name](https://w3c.github.io/accname/#dfn-accessible-name).
91
+ *
92
+ * ### Example usage
93
+ *
94
+ * Given the following HTML structure:
95
+ *
96
+ * ```html
97
+ * <h3>Sign up</h3>
98
+ * <label>
99
+ * <input type="checkbox" /> Subscribe
100
+ * </label>
101
+ * <br/>
102
+ * <button>Submit</button>
103
+ * ```
104
+ *
105
+ * Each element can be located by its implicit accessibility role:
106
+ *
107
+ * ```ts
108
+ * const heading = PageElement.located(By.role('heading', { name: 'Sign up' })).describedAs('Sign up heading');
109
+ * const checkbox = PageElement.located(By.role('checkbox', { name: 'Subscribe' })).describedAs('Subscribe checkbox');
110
+ * const button = PageElement.located(By.role('button', { name: 'Submit' })).describedAs('Submit button');
111
+ * ```
112
+ *
113
+ * #### Playwright Test
114
+ *
115
+ * ```ts
116
+ * import { Ensure } from '@serenity-js/assertions'
117
+ * import { Click, PageElement, By, isVisible } from '@serenity-js/web'
118
+ *
119
+ * // ... page element definitions as above
120
+ *
121
+ * describe('ARIA role selector', () => {
122
+ * it('locates an element by its accessible name', async ({ actor }) => {
123
+ * await actor.attemptsTo(
124
+ * Ensure.that(heading, isVisible()),
125
+ * Click.on(checkbox),
126
+ * Click.on(button),
127
+ * )
128
+ * })
129
+ * })
130
+ * ```
131
+ *
132
+ * #### WebdriverIO
133
+ *
134
+ * ```ts
135
+ * import { actorCalled } from '@serenity-js/core'
136
+ * import { Ensure } from '@serenity-js/assertions'
137
+ * import { Click, PageElement, By, isVisible } from '@serenity-js/web'
138
+ *
139
+ * // ... page element definitions as above
140
+ *
141
+ * describe('ARIA role selector', () => {
142
+ * it('locates an element by its accessible name', async () => {
143
+ * await actorCalled('Nick').attemptsTo(
144
+ * Ensure.that(heading, isVisible()),
145
+ * Click.on(checkbox),
146
+ * Click.on(button),
147
+ * )
148
+ * })
149
+ * })
150
+ * ```
151
+ *
152
+ * @param role
153
+ * @param options
154
+ */
155
+ static role(role: ByRoleSelectorValue, options?: Answerable<WithAnswerableProperties<ByRoleSelectorOptions>>): Question<Promise<ByRole>>;
156
+ /**
157
+ * Locates a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) using the name of its [HTML tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Element).
158
+ *
159
+ * @param selector
160
+ */
161
+ static tagName(selector: Answerable<string>): Question<Promise<ByTagName>>;
162
+ /**
163
+ * Locates a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) using an [XPath selector](https://developer.mozilla.org/en-US/docs/Web/XPath).
164
+ *
165
+ * @param selector
166
+ */
167
+ static xpath(selector: Answerable<string>): Question<Promise<ByXPath>>;
168
+ }
169
+ //# sourceMappingURL=By.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"By.d.ts","sourceRoot":"","sources":["../../../../src/screenplay/models/selectors/By.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAK,QAAQ,EAAO,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,EAAE;IAEX;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAOlE;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAQxH;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAOtE;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAOhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,GAAE,UAAU,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAwB5I;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAO1E;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;CAMzE"}