@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.
- package/CHANGELOG.md +24 -0
- package/esm/errors/BrowserWindowClosedError.d.ts +15 -0
- package/esm/errors/BrowserWindowClosedError.d.ts.map +1 -0
- package/esm/errors/BrowserWindowClosedError.js +17 -0
- package/esm/errors/BrowserWindowClosedError.js.map +1 -0
- package/esm/errors/CookieMissingError.d.ts +15 -0
- package/esm/errors/CookieMissingError.d.ts.map +1 -0
- package/esm/errors/CookieMissingError.js +17 -0
- package/esm/errors/CookieMissingError.js.map +1 -0
- package/esm/errors/ModalDialogObstructsScreenshotError.d.ts +15 -0
- package/esm/errors/ModalDialogObstructsScreenshotError.d.ts.map +1 -0
- package/esm/errors/ModalDialogObstructsScreenshotError.js +17 -0
- package/esm/errors/ModalDialogObstructsScreenshotError.js.map +1 -0
- package/esm/errors/index.d.ts +4 -0
- package/esm/errors/index.d.ts.map +1 -0
- package/esm/errors/index.js +4 -0
- package/esm/errors/index.js.map +1 -0
- package/esm/expectations/index.d.ts +6 -0
- package/esm/expectations/index.d.ts.map +1 -0
- package/esm/expectations/index.js +6 -0
- package/esm/expectations/index.js.map +1 -0
- package/esm/expectations/isActive.d.ts +20 -0
- package/esm/expectations/isActive.d.ts.map +1 -0
- package/esm/expectations/isActive.js +23 -0
- package/esm/expectations/isActive.js.map +1 -0
- package/esm/expectations/isClickable.d.ts +20 -0
- package/esm/expectations/isClickable.d.ts.map +1 -0
- package/esm/expectations/isClickable.js +23 -0
- package/esm/expectations/isClickable.js.map +1 -0
- package/esm/expectations/isEnabled.d.ts +20 -0
- package/esm/expectations/isEnabled.d.ts.map +1 -0
- package/esm/expectations/isEnabled.js +23 -0
- package/esm/expectations/isEnabled.js.map +1 -0
- package/esm/expectations/isSelected.d.ts +20 -0
- package/esm/expectations/isSelected.d.ts.map +1 -0
- package/esm/expectations/isSelected.js +23 -0
- package/esm/expectations/isSelected.js.map +1 -0
- package/esm/expectations/isVisible.d.ts +20 -0
- package/esm/expectations/isVisible.d.ts.map +1 -0
- package/esm/expectations/isVisible.js +23 -0
- package/esm/expectations/isVisible.js.map +1 -0
- package/esm/index.d.ts +5 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +5 -0
- package/esm/index.js.map +1 -0
- package/esm/screenplay/abilities/BrowseTheWeb.d.ts +98 -0
- package/esm/screenplay/abilities/BrowseTheWeb.d.ts.map +1 -0
- package/esm/screenplay/abilities/BrowseTheWeb.js +106 -0
- package/esm/screenplay/abilities/BrowseTheWeb.js.map +1 -0
- package/esm/screenplay/abilities/index.d.ts +2 -0
- package/esm/screenplay/abilities/index.d.ts.map +1 -0
- package/esm/screenplay/abilities/index.js +2 -0
- package/esm/screenplay/abilities/index.js.map +1 -0
- package/esm/screenplay/index.d.ts +5 -0
- package/esm/screenplay/index.d.ts.map +1 -0
- package/esm/screenplay/index.js +5 -0
- package/esm/screenplay/index.js.map +1 -0
- package/esm/screenplay/interactions/Clear.d.ts +74 -0
- package/esm/screenplay/interactions/Clear.d.ts.map +1 -0
- package/esm/screenplay/interactions/Clear.js +101 -0
- package/esm/screenplay/interactions/Clear.js.map +1 -0
- package/esm/screenplay/interactions/Click.d.ts +64 -0
- package/esm/screenplay/interactions/Click.d.ts.map +1 -0
- package/esm/screenplay/interactions/Click.js +72 -0
- package/esm/screenplay/interactions/Click.js.map +1 -0
- package/esm/screenplay/interactions/DoubleClick.d.ts +87 -0
- package/esm/screenplay/interactions/DoubleClick.d.ts.map +1 -0
- package/esm/screenplay/interactions/DoubleClick.js +95 -0
- package/esm/screenplay/interactions/DoubleClick.js.map +1 -0
- package/esm/screenplay/interactions/Drag.d.ts +95 -0
- package/esm/screenplay/interactions/Drag.d.ts.map +1 -0
- package/esm/screenplay/interactions/Drag.js +119 -0
- package/esm/screenplay/interactions/Drag.js.map +1 -0
- package/esm/screenplay/interactions/Enter.d.ts +81 -0
- package/esm/screenplay/interactions/Enter.d.ts.map +1 -0
- package/esm/screenplay/interactions/Enter.js +93 -0
- package/esm/screenplay/interactions/Enter.js.map +1 -0
- package/esm/screenplay/interactions/ExecuteScript.d.ts +297 -0
- package/esm/screenplay/interactions/ExecuteScript.d.ts.map +1 -0
- package/esm/screenplay/interactions/ExecuteScript.js +383 -0
- package/esm/screenplay/interactions/ExecuteScript.js.map +1 -0
- package/esm/screenplay/interactions/Hover.d.ts +68 -0
- package/esm/screenplay/interactions/Hover.d.ts.map +1 -0
- package/esm/screenplay/interactions/Hover.js +76 -0
- package/esm/screenplay/interactions/Hover.js.map +1 -0
- package/esm/screenplay/interactions/Navigate.d.ts +137 -0
- package/esm/screenplay/interactions/Navigate.d.ts.map +1 -0
- package/esm/screenplay/interactions/Navigate.js +174 -0
- package/esm/screenplay/interactions/Navigate.js.map +1 -0
- package/esm/screenplay/interactions/PageElementInteraction.d.ts +24 -0
- package/esm/screenplay/interactions/PageElementInteraction.d.ts.map +1 -0
- package/esm/screenplay/interactions/PageElementInteraction.js +29 -0
- package/esm/screenplay/interactions/PageElementInteraction.js.map +1 -0
- package/esm/screenplay/interactions/Press.d.ts +92 -0
- package/esm/screenplay/interactions/Press.d.ts.map +1 -0
- package/esm/screenplay/interactions/Press.js +166 -0
- package/esm/screenplay/interactions/Press.js.map +1 -0
- package/esm/screenplay/interactions/RightClick.d.ts +83 -0
- package/esm/screenplay/interactions/RightClick.d.ts.map +1 -0
- package/esm/screenplay/interactions/RightClick.js +91 -0
- package/esm/screenplay/interactions/RightClick.js.map +1 -0
- package/esm/screenplay/interactions/Scroll.d.ts +66 -0
- package/esm/screenplay/interactions/Scroll.d.ts.map +1 -0
- package/esm/screenplay/interactions/Scroll.js +72 -0
- package/esm/screenplay/interactions/Scroll.js.map +1 -0
- package/esm/screenplay/interactions/Select.d.ts +235 -0
- package/esm/screenplay/interactions/Select.d.ts.map +1 -0
- package/esm/screenplay/interactions/Select.js +262 -0
- package/esm/screenplay/interactions/Select.js.map +1 -0
- package/esm/screenplay/interactions/Switch.d.ts +130 -0
- package/esm/screenplay/interactions/Switch.d.ts.map +1 -0
- package/esm/screenplay/interactions/Switch.js +159 -0
- package/esm/screenplay/interactions/Switch.js.map +1 -0
- package/esm/screenplay/interactions/TakeScreenshot.d.ts +47 -0
- package/esm/screenplay/interactions/TakeScreenshot.d.ts.map +1 -0
- package/esm/screenplay/interactions/TakeScreenshot.js +58 -0
- package/esm/screenplay/interactions/TakeScreenshot.js.map +1 -0
- package/esm/screenplay/interactions/index.d.ts +16 -0
- package/esm/screenplay/interactions/index.d.ts.map +1 -0
- package/esm/screenplay/interactions/index.js +16 -0
- package/esm/screenplay/interactions/index.js.map +1 -0
- package/esm/screenplay/models/ArgumentDehydrator.d.ts +14 -0
- package/esm/screenplay/models/ArgumentDehydrator.d.ts.map +1 -0
- package/esm/screenplay/models/ArgumentDehydrator.js +45 -0
- package/esm/screenplay/models/ArgumentDehydrator.js.map +1 -0
- package/esm/screenplay/models/BrowserCapabilities.d.ts +24 -0
- package/esm/screenplay/models/BrowserCapabilities.d.ts.map +1 -0
- package/esm/screenplay/models/BrowserCapabilities.js +2 -0
- package/esm/screenplay/models/BrowserCapabilities.js.map +1 -0
- package/esm/screenplay/models/BrowsingSession.d.ts +74 -0
- package/esm/screenplay/models/BrowsingSession.d.ts.map +1 -0
- package/esm/screenplay/models/BrowsingSession.js +96 -0
- package/esm/screenplay/models/BrowsingSession.js.map +1 -0
- package/esm/screenplay/models/Cookie.d.ts +158 -0
- package/esm/screenplay/models/Cookie.d.ts.map +1 -0
- package/esm/screenplay/models/Cookie.js +225 -0
- package/esm/screenplay/models/Cookie.js.map +1 -0
- package/esm/screenplay/models/CookieData.d.ts +51 -0
- package/esm/screenplay/models/CookieData.d.ts.map +1 -0
- package/esm/screenplay/models/CookieData.js +2 -0
- package/esm/screenplay/models/CookieData.js.map +1 -0
- package/esm/screenplay/models/Key.d.ts +82 -0
- package/esm/screenplay/models/Key.d.ts.map +1 -0
- package/esm/screenplay/models/Key.js +97 -0
- package/esm/screenplay/models/Key.js.map +1 -0
- package/esm/screenplay/models/Locator.d.ts +48 -0
- package/esm/screenplay/models/Locator.d.ts.map +1 -0
- package/esm/screenplay/models/Locator.js +64 -0
- package/esm/screenplay/models/Locator.js.map +1 -0
- package/esm/screenplay/models/Page.d.ts +453 -0
- package/esm/screenplay/models/Page.d.ts.map +1 -0
- package/esm/screenplay/models/Page.js +252 -0
- package/esm/screenplay/models/Page.js.map +1 -0
- package/esm/screenplay/models/PageElement.d.ts +207 -0
- package/esm/screenplay/models/PageElement.d.ts.map +1 -0
- package/esm/screenplay/models/PageElement.js +89 -0
- package/esm/screenplay/models/PageElement.js.map +1 -0
- package/esm/screenplay/models/PageElements.d.ts +21 -0
- package/esm/screenplay/models/PageElements.d.ts.map +1 -0
- package/esm/screenplay/models/PageElements.js +21 -0
- package/esm/screenplay/models/PageElements.js.map +1 -0
- package/esm/screenplay/models/PageElementsLocator.d.ts +16 -0
- package/esm/screenplay/models/PageElementsLocator.d.ts.map +1 -0
- package/esm/screenplay/models/PageElementsLocator.js +31 -0
- package/esm/screenplay/models/PageElementsLocator.js.map +1 -0
- package/esm/screenplay/models/RootLocator.d.ts +24 -0
- package/esm/screenplay/models/RootLocator.d.ts.map +1 -0
- package/esm/screenplay/models/RootLocator.js +21 -0
- package/esm/screenplay/models/RootLocator.js.map +1 -0
- package/esm/screenplay/models/SelectOption.d.ts +25 -0
- package/esm/screenplay/models/SelectOption.d.ts.map +1 -0
- package/esm/screenplay/models/SelectOption.js +37 -0
- package/esm/screenplay/models/SelectOption.js.map +1 -0
- package/esm/screenplay/models/Switchable.d.ts +23 -0
- package/esm/screenplay/models/Switchable.d.ts.map +1 -0
- package/esm/screenplay/models/Switchable.js +2 -0
- package/esm/screenplay/models/Switchable.js.map +1 -0
- package/esm/screenplay/models/SwitchableOrigin.d.ts +18 -0
- package/esm/screenplay/models/SwitchableOrigin.d.ts.map +1 -0
- package/esm/screenplay/models/SwitchableOrigin.js +2 -0
- package/esm/screenplay/models/SwitchableOrigin.js.map +1 -0
- package/esm/screenplay/models/dialogs/AbsentModalDialog.d.ts +15 -0
- package/esm/screenplay/models/dialogs/AbsentModalDialog.d.ts.map +1 -0
- package/esm/screenplay/models/dialogs/AbsentModalDialog.js +20 -0
- package/esm/screenplay/models/dialogs/AbsentModalDialog.js.map +1 -0
- package/esm/screenplay/models/dialogs/AcceptedModalDialog.d.ts +17 -0
- package/esm/screenplay/models/dialogs/AcceptedModalDialog.d.ts.map +1 -0
- package/esm/screenplay/models/dialogs/AcceptedModalDialog.js +26 -0
- package/esm/screenplay/models/dialogs/AcceptedModalDialog.js.map +1 -0
- package/esm/screenplay/models/dialogs/DismissedModalDialog.d.ts +17 -0
- package/esm/screenplay/models/dialogs/DismissedModalDialog.d.ts.map +1 -0
- package/esm/screenplay/models/dialogs/DismissedModalDialog.js +26 -0
- package/esm/screenplay/models/dialogs/DismissedModalDialog.js.map +1 -0
- package/esm/screenplay/models/dialogs/ModalDialog.d.ts +171 -0
- package/esm/screenplay/models/dialogs/ModalDialog.d.ts.map +1 -0
- package/esm/screenplay/models/dialogs/ModalDialog.js +173 -0
- package/esm/screenplay/models/dialogs/ModalDialog.js.map +1 -0
- package/esm/screenplay/models/dialogs/ModalDialogHandler.d.ts +38 -0
- package/esm/screenplay/models/dialogs/ModalDialogHandler.d.ts.map +1 -0
- package/esm/screenplay/models/dialogs/ModalDialogHandler.js +27 -0
- package/esm/screenplay/models/dialogs/ModalDialogHandler.js.map +1 -0
- package/esm/screenplay/models/dialogs/index.d.ts +6 -0
- package/esm/screenplay/models/dialogs/index.d.ts.map +1 -0
- package/esm/screenplay/models/dialogs/index.js +6 -0
- package/esm/screenplay/models/dialogs/index.js.map +1 -0
- package/esm/screenplay/models/index.d.ts +18 -0
- package/esm/screenplay/models/index.d.ts.map +1 -0
- package/esm/screenplay/models/index.js +18 -0
- package/esm/screenplay/models/index.js.map +1 -0
- package/esm/screenplay/models/selectors/By.d.ts +169 -0
- package/esm/screenplay/models/selectors/By.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/By.js +217 -0
- package/esm/screenplay/models/selectors/By.js.map +1 -0
- package/esm/screenplay/models/selectors/ByCss.d.ts +13 -0
- package/esm/screenplay/models/selectors/ByCss.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/ByCss.js +16 -0
- package/esm/screenplay/models/selectors/ByCss.js.map +1 -0
- package/esm/screenplay/models/selectors/ByCssContainingText.d.ts +15 -0
- package/esm/screenplay/models/selectors/ByCssContainingText.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/ByCssContainingText.js +19 -0
- package/esm/screenplay/models/selectors/ByCssContainingText.js.map +1 -0
- package/esm/screenplay/models/selectors/ByDeepCss.d.ts +14 -0
- package/esm/screenplay/models/selectors/ByDeepCss.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/ByDeepCss.js +17 -0
- package/esm/screenplay/models/selectors/ByDeepCss.js.map +1 -0
- package/esm/screenplay/models/selectors/ById.d.ts +13 -0
- package/esm/screenplay/models/selectors/ById.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/ById.js +16 -0
- package/esm/screenplay/models/selectors/ById.js.map +1 -0
- package/esm/screenplay/models/selectors/ByRole.d.ts +126 -0
- package/esm/screenplay/models/selectors/ByRole.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/ByRole.js +19 -0
- package/esm/screenplay/models/selectors/ByRole.js.map +1 -0
- package/esm/screenplay/models/selectors/ByTagName.d.ts +13 -0
- package/esm/screenplay/models/selectors/ByTagName.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/ByTagName.js +16 -0
- package/esm/screenplay/models/selectors/ByTagName.js.map +1 -0
- package/esm/screenplay/models/selectors/ByXPath.d.ts +13 -0
- package/esm/screenplay/models/selectors/ByXPath.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/ByXPath.js +16 -0
- package/esm/screenplay/models/selectors/ByXPath.js.map +1 -0
- package/esm/screenplay/models/selectors/Selector.d.ts +10 -0
- package/esm/screenplay/models/selectors/Selector.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/Selector.js +15 -0
- package/esm/screenplay/models/selectors/Selector.js.map +1 -0
- package/esm/screenplay/models/selectors/index.d.ts +10 -0
- package/esm/screenplay/models/selectors/index.d.ts.map +1 -0
- package/esm/screenplay/models/selectors/index.js +10 -0
- package/esm/screenplay/models/selectors/index.js.map +1 -0
- package/esm/screenplay/questions/Attribute.d.ts +127 -0
- package/esm/screenplay/questions/Attribute.d.ts.map +1 -0
- package/esm/screenplay/questions/Attribute.js +150 -0
- package/esm/screenplay/questions/Attribute.js.map +1 -0
- package/esm/screenplay/questions/ComputedStyle.d.ts +131 -0
- package/esm/screenplay/questions/ComputedStyle.d.ts.map +1 -0
- package/esm/screenplay/questions/ComputedStyle.js +157 -0
- package/esm/screenplay/questions/ComputedStyle.js.map +1 -0
- package/esm/screenplay/questions/CssClasses.d.ts +110 -0
- package/esm/screenplay/questions/CssClasses.d.ts.map +1 -0
- package/esm/screenplay/questions/CssClasses.js +121 -0
- package/esm/screenplay/questions/CssClasses.js.map +1 -0
- package/esm/screenplay/questions/LastScriptExecution.d.ts +50 -0
- package/esm/screenplay/questions/LastScriptExecution.d.ts.map +1 -0
- package/esm/screenplay/questions/LastScriptExecution.js +56 -0
- package/esm/screenplay/questions/LastScriptExecution.js.map +1 -0
- package/esm/screenplay/questions/Selected.d.ts +216 -0
- package/esm/screenplay/questions/Selected.d.ts.map +1 -0
- package/esm/screenplay/questions/Selected.js +247 -0
- package/esm/screenplay/questions/Selected.js.map +1 -0
- package/esm/screenplay/questions/Text.d.ts +116 -0
- package/esm/screenplay/questions/Text.d.ts.map +1 -0
- package/esm/screenplay/questions/Text.js +121 -0
- package/esm/screenplay/questions/Text.js.map +1 -0
- package/esm/screenplay/questions/Value.d.ts +70 -0
- package/esm/screenplay/questions/Value.d.ts.map +1 -0
- package/esm/screenplay/questions/Value.js +75 -0
- package/esm/screenplay/questions/Value.js.map +1 -0
- package/esm/screenplay/questions/index.d.ts +8 -0
- package/esm/screenplay/questions/index.d.ts.map +1 -0
- package/esm/screenplay/questions/index.js +8 -0
- package/esm/screenplay/questions/index.js.map +1 -0
- package/esm/scripts/dragAndDrop.d.ts +13 -0
- package/esm/scripts/dragAndDrop.d.ts.map +1 -0
- package/esm/scripts/dragAndDrop.js +72 -0
- package/esm/scripts/dragAndDrop.js.map +1 -0
- package/esm/scripts/index.d.ts +4 -0
- package/esm/scripts/index.d.ts.map +1 -0
- package/esm/scripts/index.js +4 -0
- package/esm/scripts/index.js.map +1 -0
- package/esm/scripts/isVisible.d.ts +2 -0
- package/esm/scripts/isVisible.d.ts.map +1 -0
- package/esm/scripts/isVisible.js +92 -0
- package/esm/scripts/isVisible.js.map +1 -0
- package/esm/scripts/rehydrate.d.ts +5 -0
- package/esm/scripts/rehydrate.d.ts.map +1 -0
- package/esm/scripts/rehydrate.js +31 -0
- package/esm/scripts/rehydrate.js.map +1 -0
- package/esm/stage/crew/index.d.ts +2 -0
- package/esm/stage/crew/index.d.ts.map +1 -0
- package/esm/stage/crew/index.js +2 -0
- package/esm/stage/crew/index.js.map +1 -0
- package/esm/stage/crew/photographer/Photographer.d.ts +189 -0
- package/esm/stage/crew/photographer/Photographer.d.ts.map +1 -0
- package/esm/stage/crew/photographer/Photographer.js +215 -0
- package/esm/stage/crew/photographer/Photographer.js.map +1 -0
- package/esm/stage/crew/photographer/index.d.ts +3 -0
- package/esm/stage/crew/photographer/index.d.ts.map +1 -0
- package/esm/stage/crew/photographer/index.js +3 -0
- package/esm/stage/crew/photographer/index.js.map +1 -0
- package/esm/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +29 -0
- package/esm/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts.map +1 -0
- package/esm/stage/crew/photographer/strategies/PhotoTakingStrategy.js +64 -0
- package/esm/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +1 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +19 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts.map +1 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +25 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +1 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +19 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts.map +1 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosOfFailures.js +24 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +1 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +20 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts.map +1 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +23 -0
- package/esm/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +1 -0
- package/esm/stage/crew/photographer/strategies/index.d.ts +5 -0
- package/esm/stage/crew/photographer/strategies/index.d.ts.map +1 -0
- package/esm/stage/crew/photographer/strategies/index.js +5 -0
- package/esm/stage/crew/photographer/strategies/index.js.map +1 -0
- package/esm/stage/index.d.ts +2 -0
- package/esm/stage/index.d.ts.map +1 -0
- package/esm/stage/index.js +2 -0
- package/esm/stage/index.js.map +1 -0
- package/lib/errors/index.d.ts +3 -3
- package/lib/errors/index.d.ts.map +1 -1
- package/lib/errors/index.js +3 -3
- package/lib/errors/index.js.map +1 -1
- package/lib/expectations/index.d.ts +5 -5
- package/lib/expectations/index.d.ts.map +1 -1
- package/lib/expectations/index.js +5 -5
- package/lib/expectations/index.js.map +1 -1
- package/lib/expectations/isActive.d.ts +1 -1
- package/lib/expectations/isActive.d.ts.map +1 -1
- package/lib/expectations/isClickable.d.ts +1 -1
- package/lib/expectations/isClickable.d.ts.map +1 -1
- package/lib/expectations/isEnabled.d.ts +1 -1
- package/lib/expectations/isEnabled.d.ts.map +1 -1
- package/lib/expectations/isSelected.d.ts +1 -1
- package/lib/expectations/isSelected.d.ts.map +1 -1
- package/lib/expectations/isVisible.d.ts +1 -1
- package/lib/expectations/isVisible.d.ts.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -4
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -0
- package/lib/screenplay/abilities/BrowseTheWeb.d.ts +1 -1
- package/lib/screenplay/abilities/BrowseTheWeb.d.ts.map +1 -1
- package/lib/screenplay/abilities/index.d.ts +1 -1
- package/lib/screenplay/abilities/index.d.ts.map +1 -1
- package/lib/screenplay/abilities/index.js +1 -1
- package/lib/screenplay/abilities/index.js.map +1 -1
- package/lib/screenplay/index.d.ts +4 -4
- package/lib/screenplay/index.d.ts.map +1 -1
- package/lib/screenplay/index.js +4 -4
- package/lib/screenplay/index.js.map +1 -1
- package/lib/screenplay/interactions/Clear.d.ts +2 -2
- package/lib/screenplay/interactions/Clear.d.ts.map +1 -1
- package/lib/screenplay/interactions/Clear.js +2 -2
- package/lib/screenplay/interactions/Clear.js.map +1 -1
- package/lib/screenplay/interactions/Click.d.ts +2 -2
- package/lib/screenplay/interactions/Click.d.ts.map +1 -1
- package/lib/screenplay/interactions/Click.js +2 -2
- package/lib/screenplay/interactions/Click.js.map +1 -1
- package/lib/screenplay/interactions/DoubleClick.d.ts +2 -2
- package/lib/screenplay/interactions/DoubleClick.d.ts.map +1 -1
- package/lib/screenplay/interactions/DoubleClick.js +2 -2
- package/lib/screenplay/interactions/DoubleClick.js.map +1 -1
- package/lib/screenplay/interactions/Drag.d.ts +1 -1
- package/lib/screenplay/interactions/Drag.d.ts.map +1 -1
- package/lib/screenplay/interactions/Enter.d.ts +2 -2
- package/lib/screenplay/interactions/Enter.d.ts.map +1 -1
- package/lib/screenplay/interactions/Enter.js +3 -3
- package/lib/screenplay/interactions/Enter.js.map +1 -1
- package/lib/screenplay/interactions/ExecuteScript.js +6 -6
- package/lib/screenplay/interactions/ExecuteScript.js.map +1 -1
- package/lib/screenplay/interactions/Hover.d.ts +2 -2
- package/lib/screenplay/interactions/Hover.d.ts.map +1 -1
- package/lib/screenplay/interactions/Hover.js +2 -2
- package/lib/screenplay/interactions/Hover.js.map +1 -1
- package/lib/screenplay/interactions/Navigate.js +5 -5
- package/lib/screenplay/interactions/Navigate.js.map +1 -1
- package/lib/screenplay/interactions/PageElementInteraction.d.ts +2 -2
- package/lib/screenplay/interactions/PageElementInteraction.d.ts.map +1 -1
- package/lib/screenplay/interactions/Press.d.ts +3 -3
- package/lib/screenplay/interactions/Press.d.ts.map +1 -1
- package/lib/screenplay/interactions/Press.js +9 -9
- package/lib/screenplay/interactions/Press.js.map +1 -1
- package/lib/screenplay/interactions/RightClick.d.ts +2 -2
- package/lib/screenplay/interactions/RightClick.d.ts.map +1 -1
- package/lib/screenplay/interactions/RightClick.js +2 -2
- package/lib/screenplay/interactions/RightClick.js.map +1 -1
- package/lib/screenplay/interactions/Scroll.d.ts +1 -1
- package/lib/screenplay/interactions/Scroll.d.ts.map +1 -1
- package/lib/screenplay/interactions/Select.d.ts +1 -1
- package/lib/screenplay/interactions/Select.d.ts.map +1 -1
- package/lib/screenplay/interactions/Select.js +8 -9
- package/lib/screenplay/interactions/Select.js.map +1 -1
- package/lib/screenplay/interactions/Switch.d.ts +1 -1
- package/lib/screenplay/interactions/Switch.d.ts.map +1 -1
- package/lib/screenplay/interactions/TakeScreenshot.js +3 -3
- package/lib/screenplay/interactions/TakeScreenshot.js.map +1 -1
- package/lib/screenplay/interactions/index.d.ts +15 -15
- package/lib/screenplay/interactions/index.d.ts.map +1 -1
- package/lib/screenplay/interactions/index.js +15 -15
- package/lib/screenplay/interactions/index.js.map +1 -1
- package/lib/screenplay/models/ArgumentDehydrator.js +1 -1
- package/lib/screenplay/models/ArgumentDehydrator.js.map +1 -1
- package/lib/screenplay/models/BrowsingSession.d.ts +3 -3
- package/lib/screenplay/models/BrowsingSession.d.ts.map +1 -1
- package/lib/screenplay/models/Cookie.d.ts +1 -1
- package/lib/screenplay/models/Cookie.d.ts.map +1 -1
- package/lib/screenplay/models/Cookie.js +6 -6
- package/lib/screenplay/models/Cookie.js.map +1 -1
- package/lib/screenplay/models/Key.d.ts +5 -0
- package/lib/screenplay/models/Key.d.ts.map +1 -1
- package/lib/screenplay/models/Key.js +13 -2
- package/lib/screenplay/models/Key.js.map +1 -1
- package/lib/screenplay/models/Locator.d.ts +3 -3
- package/lib/screenplay/models/Locator.d.ts.map +1 -1
- package/lib/screenplay/models/Locator.js +9 -9
- package/lib/screenplay/models/Locator.js.map +1 -1
- package/lib/screenplay/models/Page.d.ts +12 -12
- package/lib/screenplay/models/Page.d.ts.map +1 -1
- package/lib/screenplay/models/Page.js +5 -5
- package/lib/screenplay/models/Page.js.map +1 -1
- package/lib/screenplay/models/PageElement.d.ts +5 -5
- package/lib/screenplay/models/PageElement.d.ts.map +1 -1
- package/lib/screenplay/models/PageElement.js +3 -3
- package/lib/screenplay/models/PageElement.js.map +1 -1
- package/lib/screenplay/models/PageElements.d.ts +2 -2
- package/lib/screenplay/models/PageElements.d.ts.map +1 -1
- package/lib/screenplay/models/PageElements.js +2 -2
- package/lib/screenplay/models/PageElements.js.map +1 -1
- package/lib/screenplay/models/PageElementsLocator.d.ts +3 -3
- package/lib/screenplay/models/PageElementsLocator.d.ts.map +1 -1
- package/lib/screenplay/models/PageElementsLocator.js +2 -2
- package/lib/screenplay/models/PageElementsLocator.js.map +1 -1
- package/lib/screenplay/models/RootLocator.js +1 -1
- package/lib/screenplay/models/RootLocator.js.map +1 -1
- package/lib/screenplay/models/Switchable.d.ts +1 -1
- package/lib/screenplay/models/Switchable.d.ts.map +1 -1
- package/lib/screenplay/models/dialogs/AbsentModalDialog.d.ts +1 -1
- package/lib/screenplay/models/dialogs/AbsentModalDialog.d.ts.map +1 -1
- package/lib/screenplay/models/dialogs/AbsentModalDialog.js +2 -2
- package/lib/screenplay/models/dialogs/AbsentModalDialog.js.map +1 -1
- package/lib/screenplay/models/dialogs/AcceptedModalDialog.d.ts +1 -1
- package/lib/screenplay/models/dialogs/AcceptedModalDialog.d.ts.map +1 -1
- package/lib/screenplay/models/dialogs/AcceptedModalDialog.js +2 -2
- package/lib/screenplay/models/dialogs/AcceptedModalDialog.js.map +1 -1
- package/lib/screenplay/models/dialogs/DismissedModalDialog.d.ts +1 -1
- package/lib/screenplay/models/dialogs/DismissedModalDialog.d.ts.map +1 -1
- package/lib/screenplay/models/dialogs/DismissedModalDialog.js +2 -2
- package/lib/screenplay/models/dialogs/DismissedModalDialog.js.map +1 -1
- package/lib/screenplay/models/dialogs/ModalDialog.js +7 -7
- package/lib/screenplay/models/dialogs/ModalDialog.js.map +1 -1
- package/lib/screenplay/models/dialogs/ModalDialogHandler.d.ts +1 -1
- package/lib/screenplay/models/dialogs/ModalDialogHandler.d.ts.map +1 -1
- package/lib/screenplay/models/dialogs/ModalDialogHandler.js +2 -2
- package/lib/screenplay/models/dialogs/ModalDialogHandler.js.map +1 -1
- package/lib/screenplay/models/dialogs/index.d.ts +5 -5
- package/lib/screenplay/models/dialogs/index.d.ts.map +1 -1
- package/lib/screenplay/models/dialogs/index.js +5 -5
- package/lib/screenplay/models/dialogs/index.js.map +1 -1
- package/lib/screenplay/models/index.d.ts +17 -17
- package/lib/screenplay/models/index.d.ts.map +1 -1
- package/lib/screenplay/models/index.js +17 -17
- package/lib/screenplay/models/index.js.map +1 -1
- package/lib/screenplay/models/selectors/By.d.ts +7 -7
- package/lib/screenplay/models/selectors/By.d.ts.map +1 -1
- package/lib/screenplay/models/selectors/By.js +14 -14
- package/lib/screenplay/models/selectors/By.js.map +1 -1
- package/lib/screenplay/models/selectors/ByCss.d.ts +1 -1
- package/lib/screenplay/models/selectors/ByCss.d.ts.map +1 -1
- package/lib/screenplay/models/selectors/ByCss.js +2 -2
- package/lib/screenplay/models/selectors/ByCss.js.map +1 -1
- package/lib/screenplay/models/selectors/ByCssContainingText.d.ts +1 -1
- package/lib/screenplay/models/selectors/ByCssContainingText.d.ts.map +1 -1
- package/lib/screenplay/models/selectors/ByCssContainingText.js +2 -2
- package/lib/screenplay/models/selectors/ByCssContainingText.js.map +1 -1
- package/lib/screenplay/models/selectors/ByDeepCss.d.ts +1 -1
- package/lib/screenplay/models/selectors/ByDeepCss.d.ts.map +1 -1
- package/lib/screenplay/models/selectors/ByDeepCss.js +2 -2
- package/lib/screenplay/models/selectors/ByDeepCss.js.map +1 -1
- package/lib/screenplay/models/selectors/ById.d.ts +1 -1
- package/lib/screenplay/models/selectors/ById.d.ts.map +1 -1
- package/lib/screenplay/models/selectors/ById.js +2 -2
- package/lib/screenplay/models/selectors/ById.js.map +1 -1
- package/lib/screenplay/models/selectors/ByRole.d.ts +1 -1
- package/lib/screenplay/models/selectors/ByRole.d.ts.map +1 -1
- package/lib/screenplay/models/selectors/ByRole.js +2 -2
- package/lib/screenplay/models/selectors/ByRole.js.map +1 -1
- package/lib/screenplay/models/selectors/ByTagName.d.ts +1 -1
- package/lib/screenplay/models/selectors/ByTagName.d.ts.map +1 -1
- package/lib/screenplay/models/selectors/ByTagName.js +2 -2
- package/lib/screenplay/models/selectors/ByTagName.js.map +1 -1
- package/lib/screenplay/models/selectors/ByXPath.d.ts +1 -1
- package/lib/screenplay/models/selectors/ByXPath.d.ts.map +1 -1
- package/lib/screenplay/models/selectors/ByXPath.js +2 -2
- package/lib/screenplay/models/selectors/ByXPath.js.map +1 -1
- package/lib/screenplay/models/selectors/index.d.ts +9 -9
- package/lib/screenplay/models/selectors/index.d.ts.map +1 -1
- package/lib/screenplay/models/selectors/index.js +9 -9
- package/lib/screenplay/models/selectors/index.js.map +1 -1
- package/lib/screenplay/questions/Attribute.d.ts +1 -1
- package/lib/screenplay/questions/Attribute.d.ts.map +1 -1
- package/lib/screenplay/questions/Attribute.js +2 -2
- package/lib/screenplay/questions/Attribute.js.map +1 -1
- package/lib/screenplay/questions/ComputedStyle.d.ts +1 -1
- package/lib/screenplay/questions/ComputedStyle.d.ts.map +1 -1
- package/lib/screenplay/questions/ComputedStyle.js +4 -4
- package/lib/screenplay/questions/ComputedStyle.js.map +1 -1
- package/lib/screenplay/questions/CssClasses.d.ts +1 -1
- package/lib/screenplay/questions/CssClasses.d.ts.map +1 -1
- package/lib/screenplay/questions/CssClasses.js +2 -2
- package/lib/screenplay/questions/CssClasses.js.map +1 -1
- package/lib/screenplay/questions/LastScriptExecution.js +2 -2
- package/lib/screenplay/questions/LastScriptExecution.js.map +1 -1
- package/lib/screenplay/questions/Selected.d.ts +1 -1
- package/lib/screenplay/questions/Selected.d.ts.map +1 -1
- package/lib/screenplay/questions/Text.d.ts +2 -2
- package/lib/screenplay/questions/Text.d.ts.map +1 -1
- package/lib/screenplay/questions/Text.js +3 -3
- package/lib/screenplay/questions/Text.js.map +1 -1
- package/lib/screenplay/questions/Value.d.ts +1 -1
- package/lib/screenplay/questions/Value.d.ts.map +1 -1
- package/lib/screenplay/questions/Value.js +2 -2
- package/lib/screenplay/questions/Value.js.map +1 -1
- package/lib/screenplay/questions/index.d.ts +7 -7
- package/lib/screenplay/questions/index.d.ts.map +1 -1
- package/lib/screenplay/questions/index.js +7 -7
- package/lib/screenplay/questions/index.js.map +1 -1
- package/lib/scripts/index.d.ts +3 -3
- package/lib/scripts/index.d.ts.map +1 -1
- package/lib/scripts/index.js +3 -3
- package/lib/scripts/index.js.map +1 -1
- package/lib/stage/crew/index.d.ts +1 -1
- package/lib/stage/crew/index.d.ts.map +1 -1
- package/lib/stage/crew/index.js +1 -1
- package/lib/stage/crew/index.js.map +1 -1
- package/lib/stage/crew/photographer/Photographer.d.ts +3 -3
- package/lib/stage/crew/photographer/Photographer.d.ts.map +1 -1
- package/lib/stage/crew/photographer/Photographer.js +2 -2
- package/lib/stage/crew/photographer/Photographer.js.map +1 -1
- package/lib/stage/crew/photographer/index.d.ts +2 -2
- package/lib/stage/crew/photographer/index.d.ts.map +1 -1
- package/lib/stage/crew/photographer/index.js +2 -2
- package/lib/stage/crew/photographer/index.js.map +1 -1
- package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts +1 -1
- package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.d.ts.map +1 -1
- package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js +4 -4
- package/lib/stage/crew/photographer/strategies/PhotoTakingStrategy.js.map +1 -1
- package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts +3 -3
- package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.d.ts.map +1 -1
- package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js +3 -3
- package/lib/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.js.map +1 -1
- package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts +3 -3
- package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.d.ts.map +1 -1
- package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js +4 -4
- package/lib/stage/crew/photographer/strategies/TakePhotosOfFailures.js.map +1 -1
- package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts +3 -3
- package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.d.ts.map +1 -1
- package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js +3 -3
- package/lib/stage/crew/photographer/strategies/TakePhotosOfInteractions.js.map +1 -1
- package/lib/stage/crew/photographer/strategies/index.d.ts +4 -4
- package/lib/stage/crew/photographer/strategies/index.d.ts.map +1 -1
- package/lib/stage/crew/photographer/strategies/index.js +4 -4
- package/lib/stage/crew/photographer/strategies/index.js.map +1 -1
- package/lib/stage/index.d.ts +1 -1
- package/lib/stage/index.d.ts.map +1 -1
- package/lib/stage/index.js +1 -1
- package/lib/stage/index.js.map +1 -1
- package/package.json +48 -7
- package/src/errors/index.ts +3 -3
- package/src/expectations/index.ts +5 -5
- package/src/expectations/isActive.ts +1 -1
- package/src/expectations/isClickable.ts +1 -1
- package/src/expectations/isEnabled.ts +1 -1
- package/src/expectations/isSelected.ts +1 -1
- package/src/expectations/isVisible.ts +1 -1
- package/src/index.ts +4 -4
- package/src/screenplay/abilities/BrowseTheWeb.ts +1 -1
- package/src/screenplay/abilities/index.ts +1 -1
- package/src/screenplay/index.ts +4 -4
- package/src/screenplay/interactions/Clear.ts +2 -2
- package/src/screenplay/interactions/Click.ts +2 -2
- package/src/screenplay/interactions/DoubleClick.ts +2 -2
- package/src/screenplay/interactions/Drag.ts +1 -1
- package/src/screenplay/interactions/Enter.ts +3 -3
- package/src/screenplay/interactions/ExecuteScript.ts +3 -3
- package/src/screenplay/interactions/Hover.ts +2 -2
- package/src/screenplay/interactions/Navigate.ts +1 -1
- package/src/screenplay/interactions/PageElementInteraction.ts +2 -2
- package/src/screenplay/interactions/Press.ts +5 -5
- package/src/screenplay/interactions/RightClick.ts +94 -94
- package/src/screenplay/interactions/Scroll.ts +1 -1
- package/src/screenplay/interactions/Select.ts +3 -4
- package/src/screenplay/interactions/Switch.ts +1 -1
- package/src/screenplay/interactions/TakeScreenshot.ts +2 -2
- package/src/screenplay/interactions/index.ts +15 -15
- package/src/screenplay/models/ArgumentDehydrator.ts +1 -1
- package/src/screenplay/models/BrowsingSession.ts +3 -3
- package/src/screenplay/models/Cookie.ts +3 -3
- package/src/screenplay/models/Key.ts +14 -2
- package/src/screenplay/models/Locator.ts +4 -4
- package/src/screenplay/models/Page.ts +13 -13
- package/src/screenplay/models/PageElement.ts +6 -6
- package/src/screenplay/models/PageElements.ts +3 -3
- package/src/screenplay/models/PageElementsLocator.ts +4 -4
- package/src/screenplay/models/RootLocator.ts +1 -1
- package/src/screenplay/models/Switchable.ts +1 -1
- package/src/screenplay/models/dialogs/AbsentModalDialog.ts +1 -1
- package/src/screenplay/models/dialogs/AcceptedModalDialog.ts +1 -1
- package/src/screenplay/models/dialogs/DismissedModalDialog.ts +1 -1
- package/src/screenplay/models/dialogs/ModalDialog.ts +1 -1
- package/src/screenplay/models/dialogs/ModalDialogHandler.ts +2 -2
- package/src/screenplay/models/dialogs/index.ts +5 -5
- package/src/screenplay/models/index.ts +17 -17
- package/src/screenplay/models/selectors/By.ts +8 -8
- package/src/screenplay/models/selectors/ByCss.ts +1 -1
- package/src/screenplay/models/selectors/ByCssContainingText.ts +1 -1
- package/src/screenplay/models/selectors/ByDeepCss.ts +1 -1
- package/src/screenplay/models/selectors/ById.ts +1 -1
- package/src/screenplay/models/selectors/ByRole.ts +1 -1
- package/src/screenplay/models/selectors/ByTagName.ts +1 -1
- package/src/screenplay/models/selectors/ByXPath.ts +1 -1
- package/src/screenplay/models/selectors/index.ts +9 -9
- package/src/screenplay/questions/Attribute.ts +1 -1
- package/src/screenplay/questions/ComputedStyle.ts +2 -2
- package/src/screenplay/questions/CssClasses.ts +1 -1
- package/src/screenplay/questions/LastScriptExecution.ts +1 -1
- package/src/screenplay/questions/Selected.ts +1 -1
- package/src/screenplay/questions/Text.ts +3 -3
- package/src/screenplay/questions/Value.ts +1 -1
- package/src/screenplay/questions/index.ts +7 -7
- package/src/scripts/index.ts +3 -3
- package/src/stage/crew/index.ts +1 -1
- package/src/stage/crew/photographer/Photographer.ts +4 -4
- package/src/stage/crew/photographer/index.ts +2 -2
- package/src/stage/crew/photographer/strategies/PhotoTakingStrategy.ts +4 -4
- package/src/stage/crew/photographer/strategies/TakePhotosBeforeAndAfterInteractions.ts +3 -3
- package/src/stage/crew/photographer/strategies/TakePhotosOfFailures.ts +4 -4
- package/src/stage/crew/photographer/strategies/TakePhotosOfInteractions.ts +3 -3
- package/src/stage/crew/photographer/strategies/index.ts +4 -4
- package/src/stage/index.ts +1 -1
- package/tsconfig-cjs.build.json +18 -0
- package/tsconfig-esm.build.json +18 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import util from 'node:util';
|
|
2
|
+
import type { PageElement } from './PageElement.js';
|
|
3
|
+
import { RootLocator } from './RootLocator.js';
|
|
4
|
+
import { ByCss, type Selector } from './selectors/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* [`Locator`](https://serenity-js.org/api/web/class/Locator/) uses a [`Selector`](https://serenity-js.org/api/web/class/Selector/) to locate a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) or [`PageElement`](https://serenity-js.org/api/web/class/PageElements/)
|
|
7
|
+
* within the [`Page`](https://serenity-js.org/api/web/class/Page/).
|
|
8
|
+
*
|
|
9
|
+
* ## Learn more
|
|
10
|
+
* - [`RootLocator`](https://serenity-js.org/api/web/class/RootLocator/)
|
|
11
|
+
* - [`Page.locate`](https://serenity-js.org/api/web/class/Page/#locate)
|
|
12
|
+
* - [`PageElement`](https://serenity-js.org/api/web/class/PageElement/)
|
|
13
|
+
* - [`PageElement`](https://serenity-js.org/api/web/class/PageElements/)
|
|
14
|
+
*
|
|
15
|
+
* @group Models
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class Locator<Native_Element_Type, Native_Selector_Type = any> extends RootLocator<Native_Element_Type> {
|
|
18
|
+
protected readonly parent: RootLocator<Native_Element_Type>;
|
|
19
|
+
readonly selector: Selector;
|
|
20
|
+
protected constructor(parent: RootLocator<Native_Element_Type>, selector: Selector);
|
|
21
|
+
abstract nativeElement(): Promise<Native_Element_Type>;
|
|
22
|
+
abstract allNativeElements(): Promise<Array<Native_Element_Type>>;
|
|
23
|
+
switchToFrame(element: Native_Element_Type): Promise<void>;
|
|
24
|
+
switchToParentFrame(): Promise<void>;
|
|
25
|
+
switchToMainFrame(): Promise<void>;
|
|
26
|
+
protected abstract nativeSelector(): Native_Selector_Type;
|
|
27
|
+
abstract of(parent: RootLocator<Native_Element_Type>): Locator<Native_Element_Type>;
|
|
28
|
+
abstract closestTo(child: Locator<Native_Element_Type>): Locator<Native_Element_Type>;
|
|
29
|
+
abstract locate(child: Locator<Native_Element_Type>): Locator<Native_Element_Type>;
|
|
30
|
+
/**
|
|
31
|
+
* Expresses [`ByCss`](https://serenity-js.org/api/web/class/ByCss/), [`ById`](https://serenity-js.org/api/web/class/ById/), or [`ByTagName`](https://serenity-js.org/api/web/class/ByTagName/) as a [`ByCss`](https://serenity-js.org/api/web/class/ByCss/) selector.
|
|
32
|
+
*
|
|
33
|
+
* @throws LogicError
|
|
34
|
+
* if the `selector` can't be expressed as [`ByCss`](https://serenity-js.org/api/web/class/ByCss/)
|
|
35
|
+
*
|
|
36
|
+
* @param selector
|
|
37
|
+
* @protected
|
|
38
|
+
*/
|
|
39
|
+
protected asCssSelector(selector: Selector): ByCss;
|
|
40
|
+
abstract element(): PageElement<Native_Element_Type>;
|
|
41
|
+
abstract allElements(): Promise<Array<PageElement<Native_Element_Type>>>;
|
|
42
|
+
toString(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Custom [Node.js inspection method](https://nodejs.org/api/util.html#utilinspectcustom).
|
|
45
|
+
*/
|
|
46
|
+
[util.inspect.custom]: (depth: number, options: util.InspectOptionsStylized, inspect: typeof util.inspect) => string;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=Locator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Locator.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/Locator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAmB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,8BAAsB,OAAO,CAAC,mBAAmB,EAAE,oBAAoB,GAAG,GAAG,CACzE,SAAQ,WAAW,CAAC,mBAAmB,CAAC;IAGpC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,mBAAmB,CAAC;aAC3C,QAAQ,EAAE,QAAQ;IAFtC,SAAS,aACc,MAAM,EAAE,WAAW,CAAC,mBAAmB,CAAC,EAC3C,QAAQ,EAAE,QAAQ;aAKtB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC;aAC7C,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAElE,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,oBAAoB;IAEzD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IACnF,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IACrF,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAElF;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK;IAgBlD,QAAQ,CAAC,OAAO,IAAI,WAAW,CAAC,mBAAmB,CAAC;IAEpD,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAExE,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gGAAiE;CACzF"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import util from 'node:util';
|
|
2
|
+
import { LogicError } from '@serenity-js/core';
|
|
3
|
+
import { inspectedObject } from '@serenity-js/core/io';
|
|
4
|
+
import { RootLocator } from './RootLocator.js';
|
|
5
|
+
import { ByCss, ById, ByTagName } from './selectors/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* [`Locator`](https://serenity-js.org/api/web/class/Locator/) uses a [`Selector`](https://serenity-js.org/api/web/class/Selector/) to locate a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) or [`PageElement`](https://serenity-js.org/api/web/class/PageElements/)
|
|
8
|
+
* within the [`Page`](https://serenity-js.org/api/web/class/Page/).
|
|
9
|
+
*
|
|
10
|
+
* ## Learn more
|
|
11
|
+
* - [`RootLocator`](https://serenity-js.org/api/web/class/RootLocator/)
|
|
12
|
+
* - [`Page.locate`](https://serenity-js.org/api/web/class/Page/#locate)
|
|
13
|
+
* - [`PageElement`](https://serenity-js.org/api/web/class/PageElement/)
|
|
14
|
+
* - [`PageElement`](https://serenity-js.org/api/web/class/PageElements/)
|
|
15
|
+
*
|
|
16
|
+
* @group Models
|
|
17
|
+
*/
|
|
18
|
+
export class Locator extends RootLocator {
|
|
19
|
+
parent;
|
|
20
|
+
selector;
|
|
21
|
+
constructor(parent, selector) {
|
|
22
|
+
super();
|
|
23
|
+
this.parent = parent;
|
|
24
|
+
this.selector = selector;
|
|
25
|
+
}
|
|
26
|
+
async switchToFrame(element) {
|
|
27
|
+
await this.parent.switchToFrame(element);
|
|
28
|
+
}
|
|
29
|
+
async switchToParentFrame() {
|
|
30
|
+
await this.parent.switchToParentFrame();
|
|
31
|
+
}
|
|
32
|
+
async switchToMainFrame() {
|
|
33
|
+
await this.parent.switchToMainFrame();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Expresses [`ByCss`](https://serenity-js.org/api/web/class/ByCss/), [`ById`](https://serenity-js.org/api/web/class/ById/), or [`ByTagName`](https://serenity-js.org/api/web/class/ByTagName/) as a [`ByCss`](https://serenity-js.org/api/web/class/ByCss/) selector.
|
|
37
|
+
*
|
|
38
|
+
* @throws LogicError
|
|
39
|
+
* if the `selector` can't be expressed as [`ByCss`](https://serenity-js.org/api/web/class/ByCss/)
|
|
40
|
+
*
|
|
41
|
+
* @param selector
|
|
42
|
+
* @protected
|
|
43
|
+
*/
|
|
44
|
+
asCssSelector(selector) {
|
|
45
|
+
if (selector instanceof ByCss) {
|
|
46
|
+
return selector;
|
|
47
|
+
}
|
|
48
|
+
if (selector instanceof ById) {
|
|
49
|
+
return new ByCss(`#${selector.value}`);
|
|
50
|
+
}
|
|
51
|
+
if (selector instanceof ByTagName) {
|
|
52
|
+
return new ByCss(`${selector.value}`);
|
|
53
|
+
}
|
|
54
|
+
throw new LogicError(`${selector} can't be expressed as a CSS selector`);
|
|
55
|
+
}
|
|
56
|
+
toString() {
|
|
57
|
+
return this.selector.toString();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Custom [Node.js inspection method](https://nodejs.org/api/util.html#utilinspectcustom).
|
|
61
|
+
*/
|
|
62
|
+
[util.inspect.custom] = inspectedObject(this, ['parent', 'selector']);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=Locator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Locator.js","sourceRoot":"","sources":["../../../src/screenplay/models/Locator.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAiB,MAAM,sBAAsB,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,OAClB,SAAQ,WAAgC;IAGjB;IACH;IAFpB,YACuB,MAAwC,EAC3C,QAAkB;QAElC,KAAK,EAAE,CAAC;QAHW,WAAM,GAAN,MAAM,CAAkC;QAC3C,aAAQ,GAAR,QAAQ,CAAU;IAGtC,CAAC;IAKD,KAAK,CAAC,aAAa,CAAC,OAA4B;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;IAQD;;;;;;;;OAQG;IACO,aAAa,CAAC,QAAkB;QACtC,IAAI,QAAQ,YAAY,KAAK,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,QAAQ,YAAY,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,KAAK,CAAC,IAAK,QAAQ,CAAC,KAAM,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,QAAQ,YAAY,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,KAAK,CAAC,GAAI,QAAQ,CAAC,KAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,IAAI,UAAU,CAAC,GAAI,QAAS,uCAAuC,CAAC,CAAA;IAC9E,CAAC;IAMD,QAAQ;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,CAAE,QAAsB,EAAE,UAAU,CAAE,CAAC,CAAC;CACzF"}
|
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
import type { URL } from 'node:url';
|
|
2
|
+
import type { Expectation, Optional, QuestionAdapter } from '@serenity-js/core';
|
|
3
|
+
import type { CorrelationId } from '@serenity-js/core/model';
|
|
4
|
+
import type { BrowsingSession } from './BrowsingSession.js';
|
|
5
|
+
import type { Cookie } from './Cookie.js';
|
|
6
|
+
import type { CookieData } from './CookieData.js';
|
|
7
|
+
import type { ModalDialogHandler } from './dialogs/index.js';
|
|
8
|
+
import type { Key } from './Key.js';
|
|
9
|
+
import type { PageElement } from './PageElement.js';
|
|
10
|
+
import type { PageElements } from './PageElements.js';
|
|
11
|
+
import type { RootLocator } from './RootLocator.js';
|
|
12
|
+
import type { Selector } from './selectors/index.js';
|
|
13
|
+
import type { Switchable } from './Switchable.js';
|
|
14
|
+
import type { SwitchableOrigin } from './SwitchableOrigin.js';
|
|
15
|
+
/**
|
|
16
|
+
* Serenity/JS Screenplay Pattern-style model that enables interactions with a Web page
|
|
17
|
+
* rendered in a Web browser tab.
|
|
18
|
+
*
|
|
19
|
+
* ## Referring to the current page
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { Ensure, endsWith } from '@serenity-js/assertions'
|
|
23
|
+
* import { actorCalled } from '@serenity-js/core'
|
|
24
|
+
* import { Navigate, Page } from '@serenity-js/web'
|
|
25
|
+
*
|
|
26
|
+
* await actorCalled('Serena').attemptsTo(
|
|
27
|
+
* Navigate.to('https://serenity-js.org'),
|
|
28
|
+
* Ensure.that(Page.current().title(), endsWith('Serenity/JS')),
|
|
29
|
+
* )
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* ## Switching to another open page
|
|
33
|
+
*
|
|
34
|
+
* ```ts
|
|
35
|
+
* import { Ensure, equals, includes, startsWith } from '@serenity-js/assertions'
|
|
36
|
+
* import { actorCalled } from '@serenity-js/core'
|
|
37
|
+
* import { Navigate, Page, Switch, Text } from '@serenity-js/web'
|
|
38
|
+
*
|
|
39
|
+
* const Navigation = {
|
|
40
|
+
* linkTo = (name: Answerable<string>) =>
|
|
41
|
+
* PageElements.located(By.css('nav a'))
|
|
42
|
+
* .where(Text, includes(name))
|
|
43
|
+
* .first()
|
|
44
|
+
* }
|
|
45
|
+
*
|
|
46
|
+
* await actorCalled('Serena').attemptsTo(
|
|
47
|
+
* Navigate.to('https://serenity-js.org'),
|
|
48
|
+
* Click.on(Navigation.linkTo('GitHub')),
|
|
49
|
+
*
|
|
50
|
+
* Switch.to(Page.whichUrl(startsWith('https://github.com')))
|
|
51
|
+
*
|
|
52
|
+
* Ensure.that(
|
|
53
|
+
* Page.current().url().href,
|
|
54
|
+
* equals('https://github.com/serenity-js/serenity-js')
|
|
55
|
+
* ),
|
|
56
|
+
* )
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* ## Retrieving information about another open page
|
|
60
|
+
*
|
|
61
|
+
* You can retrieve information about another open page without having to explicitly switch to it:
|
|
62
|
+
*
|
|
63
|
+
* ```ts
|
|
64
|
+
* import { Ensure, equals, includes, startsWith } from '@serenity-js/assertions'
|
|
65
|
+
* import { actorCalled } from '@serenity-js/core'
|
|
66
|
+
* import { Navigate, Page, Text } from '@serenity-js/web'
|
|
67
|
+
*
|
|
68
|
+
* const Navigation = {
|
|
69
|
+
* linkTo = (name: Answerable<string>) =>
|
|
70
|
+
* PageElements.located(By.css('nav a'))
|
|
71
|
+
* .where(Text, includes(name))
|
|
72
|
+
* .first()
|
|
73
|
+
* }
|
|
74
|
+
*
|
|
75
|
+
* await actorCalled('Serena').attemptsTo(
|
|
76
|
+
* Navigate.to('https://serenity-js.org'),
|
|
77
|
+
* Click.on(Navigation.linkTo('GitHub')),
|
|
78
|
+
* Ensure.that(
|
|
79
|
+
* Page.whichUrl(startsWith('https://github.com')).url().href,
|
|
80
|
+
* equals('https://github.com/serenity-js/serenity-js')
|
|
81
|
+
* ),
|
|
82
|
+
* )
|
|
83
|
+
* ```
|
|
84
|
+
*
|
|
85
|
+
* ## Performing activities in the context of another page
|
|
86
|
+
*
|
|
87
|
+
* ```ts
|
|
88
|
+
* import { Ensure, equals, includes, startsWith } from '@serenity-js/assertions'
|
|
89
|
+
* import { actorCalled } from '@serenity-js/core'
|
|
90
|
+
* import { Navigate, Page, Text } from '@serenity-js/web'
|
|
91
|
+
*
|
|
92
|
+
* const Navigation = {
|
|
93
|
+
* linkTo = (name: Answerable<string>) =>
|
|
94
|
+
* PageElements.located(By.css('nav a'))
|
|
95
|
+
* .where(Text, includes(name))
|
|
96
|
+
* .first()
|
|
97
|
+
* }
|
|
98
|
+
*
|
|
99
|
+
* await actorCalled('Serena').attemptsTo(
|
|
100
|
+
*
|
|
101
|
+
* // Serenity/JS GitHub repository opens in a new browser tab
|
|
102
|
+
* Navigate.to('https://serenity-js.org'),
|
|
103
|
+
* Click.on(Navigation.linkTo('GitHub')),
|
|
104
|
+
*
|
|
105
|
+
* // Switch to the newly opened page and perform an assertion
|
|
106
|
+
* Switch.to(Page.whichUrl(startsWith('https://github.com')))
|
|
107
|
+
* .and(
|
|
108
|
+
* Ensure.that(
|
|
109
|
+
* Page.current().url().href,
|
|
110
|
+
* equals('https://github.com/serenity-js/serenity-js')
|
|
111
|
+
* )
|
|
112
|
+
* ),
|
|
113
|
+
* // Automatically switch back to the original page
|
|
114
|
+
*
|
|
115
|
+
* Ensure.that(Page.current().url().href, equals('https://serenity-js.org'),
|
|
116
|
+
* )
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* ## Learn more
|
|
120
|
+
*
|
|
121
|
+
* - [`BrowseTheWeb`](https://serenity-js.org/api/web/class/BrowseTheWeb/)
|
|
122
|
+
* - [`PageElement`](https://serenity-js.org/api/web/class/PageElement/)
|
|
123
|
+
* - [`Optional`](https://serenity-js.org/api/core/interface/Optional/)
|
|
124
|
+
* - [`Switchable`](https://serenity-js.org/api/web/interface/Switchable/)
|
|
125
|
+
*
|
|
126
|
+
* @group Models
|
|
127
|
+
*/
|
|
128
|
+
export declare abstract class Page<Native_Element_Type = any> implements Optional, Switchable {
|
|
129
|
+
protected readonly session: BrowsingSession<Page<Native_Element_Type>>;
|
|
130
|
+
protected readonly rootLocator: RootLocator<Native_Element_Type>;
|
|
131
|
+
protected modalDialogHandler: ModalDialogHandler;
|
|
132
|
+
readonly id: CorrelationId;
|
|
133
|
+
/**
|
|
134
|
+
* Creates a [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter) representing the currently active [`Page`](https://serenity-js.org/api/web/class/Page/).
|
|
135
|
+
*/
|
|
136
|
+
static current(): QuestionAdapter<Page>;
|
|
137
|
+
/**
|
|
138
|
+
* Creates a [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter) that resolves to a [`Page`](https://serenity-js.org/api/web/class/Page/) which [`Page.name`](https://serenity-js.org/api/web/class/Page/#name)
|
|
139
|
+
* meets the [expectation](https://serenity-js.org/api/core/class/Expectation/).
|
|
140
|
+
*
|
|
141
|
+
* #### Switching to a page with the desired name
|
|
142
|
+
*
|
|
143
|
+
* ```ts
|
|
144
|
+
* import { includes } from '@serenity-js/assertions'
|
|
145
|
+
* import { actorCalled } from '@serenity-js/core'
|
|
146
|
+
* import { Switch } from '@serenity-js/web'
|
|
147
|
+
*
|
|
148
|
+
* actorCalled('Bernie').attemptsTo(
|
|
149
|
+
* Switch.to(Page.whichName(includes(`photo-gallery`))),
|
|
150
|
+
* )
|
|
151
|
+
* ```
|
|
152
|
+
*
|
|
153
|
+
* @param expectation
|
|
154
|
+
*/
|
|
155
|
+
static whichName(expectation: Expectation<string>): QuestionAdapter<Page>;
|
|
156
|
+
/**
|
|
157
|
+
* Creates a [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter) that resolves to a [`Page`](https://serenity-js.org/api/web/class/Page/) which [`Page.title`](https://serenity-js.org/api/web/class/Page/#title)
|
|
158
|
+
* meets the [expectation](https://serenity-js.org/api/core/class/Expectation/).
|
|
159
|
+
*
|
|
160
|
+
* #### Switching to a page with the desired title
|
|
161
|
+
*
|
|
162
|
+
* ```ts
|
|
163
|
+
* import { includes } from '@serenity-js/assertions'
|
|
164
|
+
* import { actorCalled } from '@serenity-js/core'
|
|
165
|
+
* import { Switch } from '@serenity-js/web'
|
|
166
|
+
*
|
|
167
|
+
* actorCalled('Bernie').attemptsTo(
|
|
168
|
+
* Switch.to(Page.whichTitle(includes(`Summer collection`))),
|
|
169
|
+
* )
|
|
170
|
+
* ```
|
|
171
|
+
*
|
|
172
|
+
* @param expectation
|
|
173
|
+
*/
|
|
174
|
+
static whichTitle(expectation: Expectation<string>): QuestionAdapter<Page>;
|
|
175
|
+
/**
|
|
176
|
+
* Creates a [`QuestionAdapter`](https://serenity-js.org/api/core/#QuestionAdapter) that resolves to a [`Page`](https://serenity-js.org/api/web/class/Page/) which [`Page.url`](https://serenity-js.org/api/web/class/Page/#url)
|
|
177
|
+
* meets the [expectation](https://serenity-js.org/api/core/class/Expectation/).
|
|
178
|
+
*
|
|
179
|
+
* #### Switching to a page with the desired URL
|
|
180
|
+
*
|
|
181
|
+
* ```ts
|
|
182
|
+
* import { endsWith } from '@serenity-js/assertions'
|
|
183
|
+
* import { actorCalled } from '@serenity-js/core'
|
|
184
|
+
* import { Switch } from '@serenity-js/web'
|
|
185
|
+
*
|
|
186
|
+
* actorCalled('Bernie').attemptsTo(
|
|
187
|
+
* Switch.to(Page.whichUrl(endsWith(`/gallery.html`))),
|
|
188
|
+
* )
|
|
189
|
+
* ```
|
|
190
|
+
*
|
|
191
|
+
* @param expectation
|
|
192
|
+
*/
|
|
193
|
+
static whichUrl(expectation: Expectation<string>): QuestionAdapter<Page>;
|
|
194
|
+
private static findMatchingPage;
|
|
195
|
+
protected constructor(session: BrowsingSession<Page<Native_Element_Type>>, rootLocator: RootLocator<Native_Element_Type>, modalDialogHandler: ModalDialogHandler, id: CorrelationId);
|
|
196
|
+
/**
|
|
197
|
+
* Creates a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/) wrapping a native element.
|
|
198
|
+
*
|
|
199
|
+
* @param nativeElement
|
|
200
|
+
*/
|
|
201
|
+
abstract createPageElement(nativeElement: Native_Element_Type): PageElement<Native_Element_Type>;
|
|
202
|
+
/**
|
|
203
|
+
* Creates a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/), retrieving an element located by [`Selector`](https://serenity-js.org/api/web/class/Selector/).
|
|
204
|
+
*
|
|
205
|
+
* @param selector
|
|
206
|
+
*/
|
|
207
|
+
abstract locate(selector: Selector): PageElement<Native_Element_Type>;
|
|
208
|
+
/**
|
|
209
|
+
* Creates [`PageElement`](https://serenity-js.org/api/web/class/PageElements/), retrieving a collection of elements located by [`Selector`](https://serenity-js.org/api/web/class/Selector/).
|
|
210
|
+
*
|
|
211
|
+
* @param selector
|
|
212
|
+
*/
|
|
213
|
+
abstract locateAll(selector: Selector): PageElements<Native_Element_Type>;
|
|
214
|
+
/**
|
|
215
|
+
* Navigate to a given destination, specified as an absolute URL
|
|
216
|
+
* or a path relative to any base URL configured in your web test integration tool.
|
|
217
|
+
*
|
|
218
|
+
* #### Learn more
|
|
219
|
+
*
|
|
220
|
+
* - [WebdriverIO: Configuration Options](https://webdriver.io/docs/options/#baseurl)
|
|
221
|
+
* - [Playwright: Browser](https://playwright.dev/docs/api/class-browser#browser-new-context)
|
|
222
|
+
* - [Playwright: Test Options](https://playwright.dev/docs/api/class-testoptions#test-options-base-url)
|
|
223
|
+
* - [Protractor: Configuration](https://github.com/angular/protractor/blob/master/lib/config.ts)
|
|
224
|
+
*
|
|
225
|
+
* @param destination
|
|
226
|
+
*/
|
|
227
|
+
abstract navigateTo(destination: string): Promise<void>;
|
|
228
|
+
/**
|
|
229
|
+
* Causes the browser to traverse one step backward in the joint session history
|
|
230
|
+
* of the current [`Page`](https://serenity-js.org/api/web/class/Page/) (the current top-level browsing context).
|
|
231
|
+
*
|
|
232
|
+
* This is equivalent to pressing the back button in the browser UI,
|
|
233
|
+
* or calling [`window.history.back`](https://developer.mozilla.org/en-US/docs/Web/API/History/back).
|
|
234
|
+
*/
|
|
235
|
+
abstract navigateBack(): Promise<void>;
|
|
236
|
+
/**
|
|
237
|
+
* Causes the browser to traverse one step forward in the joint session history
|
|
238
|
+
* of the current [`Page`](https://serenity-js.org/api/web/class/Page/) (the current top-level browsing context).
|
|
239
|
+
*
|
|
240
|
+
* This is equivalent to pressing the back button in the browser UI,
|
|
241
|
+
* or calling [`window.history.forward`](https://developer.mozilla.org/en-US/docs/Web/API/History/forward).
|
|
242
|
+
*/
|
|
243
|
+
abstract navigateForward(): Promise<void>;
|
|
244
|
+
/**
|
|
245
|
+
* Causes the browser to reload the [`Page`](https://serenity-js.org/api/web/class/Page/) in the current top-level browsing context.
|
|
246
|
+
*/
|
|
247
|
+
abstract reload(): Promise<void>;
|
|
248
|
+
/**
|
|
249
|
+
* Send a sequence of [`Key`](https://serenity-js.org/api/web/class/Key/) strokes to the active element.
|
|
250
|
+
*
|
|
251
|
+
* @param keys
|
|
252
|
+
* Keys to enter
|
|
253
|
+
*/
|
|
254
|
+
abstract sendKeys(keys: Array<Key | string>): Promise<void>;
|
|
255
|
+
/**
|
|
256
|
+
* Schedules a command to execute JavaScript in the context of the currently selected frame or window.
|
|
257
|
+
*
|
|
258
|
+
* The script fragment will be executed as the body of an anonymous function.
|
|
259
|
+
* If the script is provided as a function object, that function will be converted to a string for injection
|
|
260
|
+
* into the target window.
|
|
261
|
+
*
|
|
262
|
+
* Any arguments provided in addition to the script will be included as script arguments and may be referenced
|
|
263
|
+
* using the `arguments` object. Arguments may be a `boolean`, `number`, `string` or `WebElement`.
|
|
264
|
+
* Arrays and objects may also be used as script arguments as long as each item adheres
|
|
265
|
+
* to the types previously mentioned.
|
|
266
|
+
*
|
|
267
|
+
* The script may refer to any variables accessible from the current window.
|
|
268
|
+
* Furthermore, the script will execute in the window's context, thus `document` may be used to refer
|
|
269
|
+
* to the current document. Any local variables will not be available once the script has finished executing,
|
|
270
|
+
* though global variables will persist.
|
|
271
|
+
*
|
|
272
|
+
* If the script has a return value (i.e. if the script contains a `return` statement),
|
|
273
|
+
* then the following steps will be taken for resolving this functions return value:
|
|
274
|
+
*
|
|
275
|
+
* - For a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/), the value will resolve to a [HTMLElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement)
|
|
276
|
+
* - `null` and `undefined` return values will resolve to `null`
|
|
277
|
+
* - `boolean`, `number`, and `string` values will resolve as is
|
|
278
|
+
* - Functions will resolve to their string representation
|
|
279
|
+
* - For arrays and objects, each member item will be converted according to the rules above
|
|
280
|
+
*
|
|
281
|
+
* #### Use injected JavaScript to retrieve information about a HTMLElement
|
|
282
|
+
*
|
|
283
|
+
* ```ts
|
|
284
|
+
* BrowseTheWeb.as(actor).executeAsyncScript(`
|
|
285
|
+
* return arguments[0].tagName;
|
|
286
|
+
* `, PageElement.located(By.css('h1')).describedAs('header'))
|
|
287
|
+
*
|
|
288
|
+
* // returns a Promise that resolves to 'h1'
|
|
289
|
+
* ```
|
|
290
|
+
*
|
|
291
|
+
* #### Learn more
|
|
292
|
+
* - [Selenium WebDriver: JavaScript Executor](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html#executeAsyncScript-java.lang.String-java.lang.Object...-)
|
|
293
|
+
* - [`Page.lastScriptExecutionResult`](https://serenity-js.org/api/web/class/Page/#lastScriptExecutionResult)
|
|
294
|
+
*
|
|
295
|
+
* @param script
|
|
296
|
+
* @param args
|
|
297
|
+
*/
|
|
298
|
+
abstract executeScript<Result, InnerArguments extends any[]>(script: string | ((...parameters: InnerArguments) => Result), ...args: InnerArguments): Promise<Result>;
|
|
299
|
+
/**
|
|
300
|
+
* Schedules a command to execute asynchronous JavaScript in the context of the currently selected frame or window.
|
|
301
|
+
*
|
|
302
|
+
* The script fragment will be executed as the body of an anonymous function.
|
|
303
|
+
* If the script is provided as a function object, that function will be converted to a string for injection
|
|
304
|
+
* into the target window.
|
|
305
|
+
*
|
|
306
|
+
* Any arguments provided in addition to the script will be included as script arguments and may be referenced
|
|
307
|
+
* using the `arguments` object. Arguments may be a `boolean`, `number`, `string` or `WebElement`
|
|
308
|
+
* Arrays and objects may also be used as script arguments as long as each item adheres
|
|
309
|
+
* to the types previously mentioned.
|
|
310
|
+
*
|
|
311
|
+
* Unlike executing synchronous JavaScript with [`Page.executeScript`](https://serenity-js.org/api/web/class/Page/#executeScript),
|
|
312
|
+
* scripts executed with this function must explicitly signal they are finished by invoking the provided callback.
|
|
313
|
+
*
|
|
314
|
+
* This callback will always be injected into the executed function as the last argument,
|
|
315
|
+
* and thus may be referenced with `arguments[arguments.length - 1]`.
|
|
316
|
+
*
|
|
317
|
+
* The following steps will be taken for resolving this functions return value against
|
|
318
|
+
* the first argument to the script's callback function:
|
|
319
|
+
*
|
|
320
|
+
* - For a [`PageElement`](https://serenity-js.org/api/web/class/PageElement/), the value will resolve to a [HTMLElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement)
|
|
321
|
+
* - `null` and `undefined` return values will resolve to `null`
|
|
322
|
+
* - `boolean`, `number`, and `string` values will resolve as is
|
|
323
|
+
* - Functions will resolve to their string representation
|
|
324
|
+
* - For arrays and objects, each member item will be converted according to the rules above
|
|
325
|
+
*
|
|
326
|
+
* #### Perform a sleep in the browser under test>
|
|
327
|
+
*
|
|
328
|
+
* ```ts
|
|
329
|
+
* BrowseTheWeb.as(actor).executeAsyncScript(`
|
|
330
|
+
* var delay = arguments[0];
|
|
331
|
+
* var callback = arguments[arguments.length - 1];
|
|
332
|
+
*
|
|
333
|
+
* window.setTimeout(callback, delay);
|
|
334
|
+
* `, 500)
|
|
335
|
+
* ```
|
|
336
|
+
*
|
|
337
|
+
* #### Return a value asynchronously
|
|
338
|
+
*
|
|
339
|
+
* ```ts
|
|
340
|
+
* BrowseTheWeb.as(actor).executeAsyncScript(`
|
|
341
|
+
* var callback = arguments[arguments.length - 1];
|
|
342
|
+
*
|
|
343
|
+
* callback('some return value')
|
|
344
|
+
* `).then(value => doSomethingWithThe(value))
|
|
345
|
+
* ```
|
|
346
|
+
*
|
|
347
|
+
* #### Learn more
|
|
348
|
+
* - [Selenium WebDriver: JavaScript Executor](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html#executeAsyncScript-java.lang.String-java.lang.Object...-)
|
|
349
|
+
* - [`Page.lastScriptExecutionResult`](https://serenity-js.org/api/web/class/Page/#lastScriptExecutionResult)
|
|
350
|
+
*
|
|
351
|
+
* @param script
|
|
352
|
+
* @param args
|
|
353
|
+
*/
|
|
354
|
+
abstract executeAsyncScript<Result, Parameters extends any[]>(script: string | ((...args: [...parameters: Parameters, callback: (result: Result) => void]) => void), ...args: Parameters): Promise<Result>;
|
|
355
|
+
/**
|
|
356
|
+
* Returns the last result of calling [`Page.executeAsyncScript`](https://serenity-js.org/api/web/class/Page/#executeAsyncScript)
|
|
357
|
+
* or [`Page.executeScript`](https://serenity-js.org/api/web/class/Page/#executeScript)
|
|
358
|
+
*/
|
|
359
|
+
abstract lastScriptExecutionResult<R = any>(): R;
|
|
360
|
+
/**
|
|
361
|
+
* Take a screenshot of the top-level browsing context's viewport.
|
|
362
|
+
*
|
|
363
|
+
* @throws [`BrowserWindowClosedError`](https://serenity-js.org/api/web/class/BrowserWindowClosedError/)
|
|
364
|
+
* When the page you're trying to take the screenshot of has already been closed
|
|
365
|
+
*
|
|
366
|
+
* @return
|
|
367
|
+
* A promise that will resolve to a base64-encoded screenshot PNG
|
|
368
|
+
*/
|
|
369
|
+
abstract takeScreenshot(): Promise<string>;
|
|
370
|
+
/**
|
|
371
|
+
* Retrieves a cookie identified by `name` and visible to this [`Page`](https://serenity-js.org/api/web/class/Page/).
|
|
372
|
+
*
|
|
373
|
+
* @param name
|
|
374
|
+
*/
|
|
375
|
+
abstract cookie(name: string): Promise<Cookie>;
|
|
376
|
+
/**
|
|
377
|
+
* Adds a single cookie with [`CookieData`](https://serenity-js.org/api/web/interface/CookieData/) to the cookie store associated
|
|
378
|
+
* with the active [`Page`](https://serenity-js.org/api/web/class/Page/)'s address.
|
|
379
|
+
*
|
|
380
|
+
* @param cookieData
|
|
381
|
+
*/
|
|
382
|
+
abstract setCookie(cookieData: CookieData): Promise<void>;
|
|
383
|
+
/**
|
|
384
|
+
* Removes all the cookies.
|
|
385
|
+
*/
|
|
386
|
+
abstract deleteAllCookies(): Promise<void>;
|
|
387
|
+
/**
|
|
388
|
+
* Retrieves the document title of the current top-level browsing context, equivalent to calling `document.title`.
|
|
389
|
+
*
|
|
390
|
+
* #### Learn more
|
|
391
|
+
* - [Mozilla Developer Network - Document title](https://developer.mozilla.org/en-US/docs/Web/API/Document/title)
|
|
392
|
+
*/
|
|
393
|
+
abstract title(): Promise<string>;
|
|
394
|
+
/**
|
|
395
|
+
* Retrieves the [URL](https://nodejs.org/api/url.html) of the current top-level browsing context.
|
|
396
|
+
*/
|
|
397
|
+
abstract url(): Promise<URL>;
|
|
398
|
+
/**
|
|
399
|
+
* Retrieves the name of the current top-level browsing context.
|
|
400
|
+
*
|
|
401
|
+
* #### Learn more
|
|
402
|
+
* - [Mozilla Developer Network - Window: name property](https://developer.mozilla.org/en-US/docs/Web/API/Window/name)
|
|
403
|
+
*/
|
|
404
|
+
abstract name(): Promise<string>;
|
|
405
|
+
/**
|
|
406
|
+
* Checks if a given window / tab / page is open and can be switched to, e.g. it's not closed.
|
|
407
|
+
*/
|
|
408
|
+
abstract isPresent(): Promise<boolean>;
|
|
409
|
+
/**
|
|
410
|
+
* Returns the actual viewport size available for the given page,
|
|
411
|
+
* excluding any scrollbars.
|
|
412
|
+
*/
|
|
413
|
+
abstract viewportSize(): Promise<{
|
|
414
|
+
width: number;
|
|
415
|
+
height: number;
|
|
416
|
+
}>;
|
|
417
|
+
/**
|
|
418
|
+
* Sets ths size of the visible viewport to desired dimensions.
|
|
419
|
+
*
|
|
420
|
+
* @param size
|
|
421
|
+
*/
|
|
422
|
+
abstract setViewportSize(size: {
|
|
423
|
+
width: number;
|
|
424
|
+
height: number;
|
|
425
|
+
}): Promise<void>;
|
|
426
|
+
/**
|
|
427
|
+
* Switches the current browsing context to the given page
|
|
428
|
+
* and returns an object that allows the caller to switch back
|
|
429
|
+
* to the previous context when needed.
|
|
430
|
+
*
|
|
431
|
+
* ## Learn more
|
|
432
|
+
* - [`Switch`](https://serenity-js.org/api/web/class/Switch/)
|
|
433
|
+
* - [`Switchable`](https://serenity-js.org/api/web/interface/Switchable/)
|
|
434
|
+
*/
|
|
435
|
+
switchTo(): Promise<SwitchableOrigin>;
|
|
436
|
+
/**
|
|
437
|
+
* Closes this page.
|
|
438
|
+
*/
|
|
439
|
+
abstract close(): Promise<void>;
|
|
440
|
+
/**
|
|
441
|
+
* Closes any open pages, except for this one.
|
|
442
|
+
*/
|
|
443
|
+
abstract closeOthers(): Promise<void>;
|
|
444
|
+
/**
|
|
445
|
+
* Returns the [`ModalDialogHandler`](https://serenity-js.org/api/web/class/ModalDialogHandler/) for the current [`Page`](https://serenity-js.org/api/web/class/Page/).
|
|
446
|
+
*/
|
|
447
|
+
modalDialog(): ModalDialogHandler;
|
|
448
|
+
/**
|
|
449
|
+
* Returns a description of this Page and its ID.
|
|
450
|
+
*/
|
|
451
|
+
toString(): string;
|
|
452
|
+
}
|
|
453
|
+
//# sourceMappingURL=Page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/screenplay/models/Page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,KAAK,EAAE,WAAW,EAAsB,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgHG;AACH,8BAAsB,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAE,YAAW,QAAQ,EAAE,UAAU;IAoH7E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,mBAAmB,CAAC;IAChE,SAAS,CAAC,kBAAkB,EAAE,kBAAkB;aAChC,EAAE,EAAE,aAAa;IArHrC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC;IAMvC;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC;IAYzE;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC;IAY1E;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC;mBAcnD,gBAAgB;IAYrC,SAAS,aACc,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EACnD,WAAW,EAAE,WAAW,CAAC,mBAAmB,CAAC,EACtD,kBAAkB,EAAE,kBAAkB,EAChC,EAAE,EAAE,aAAa;IAQrC;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,aAAa,EAAE,mBAAmB,GAAG,WAAW,CAAC,mBAAmB,CAAC;IAEhG;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC,mBAAmB,CAAC;IAErE;;;;OAIG;IAEH,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC;IAEzE;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvD;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAEtC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,SAAS,GAAG,EAAE,EACvD,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,cAAc,KAAK,MAAM,CAAC,EAC5D,GAAG,IAAI,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACH,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,SAAS,GAAG,EAAE,EACxD,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAE,GAAG,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAE,KAAK,IAAI,CAAC,EACvG,GAAG,IAAI,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;IAEhD;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAE1C;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9C;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAE1C;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAE5B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAEnE;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhF;;;;;;;;OAQG;IACG,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAa3C;;OAEG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAErC;;OAEG;IACH,WAAW,IAAI,kBAAkB;IAIjC;;OAEG;IACH,QAAQ,IAAI,MAAM;CAGrB"}
|