cucumber-playwright-framework
v0.1.0-beta.42
Published
BDD test automation framework using Cucumber and Playwright for web applications
Downloads
2,094
Maintainers
Readme
Step definitions
Given steps
| Step | Summary | | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Given the <actorName> is on the "<pageName>" page of the "<appName>" app | Opens the application landing page in a new browser based on the app config defined in test.config.jsonDetailsExamples:Given the Host is on the "create-event" page of the "events" appMethod:stepOpenLandingPageOfAppUsingConfig(scenarioWorld: ScenarioWorld, actorName: string, pageName: string, appName: string): Promise<void> | | Given the <actorName> (open|opens) the "<pageName>" page of the "<appName>" app with the "<appURL>" URL | Opens the application landing page in a new browser based on the URLDetailsExamples:Given the host opens the "create-event" page of the "events" app with the "http://localhost:3000/Meeting" URLMethod:stepOpenLandingPageOfAppUsingURL(scenarioWorld: ScenarioWorld, actorName: string, pageName: string, appName: string, url: string): Promise<void> | | Given the <actorName> (open|opens) the "<appName>" app using the auth state of "<userName>" user | Opens the application landing page in a new browser based on the app config defined in test.config.json with auth state injectedDetailsExamples:Given the host opens the "events" app using the auth state of "admin" userMethod:stepOpenAppUsingConfigWithAuthState(scenarioWorld: ScenarioWorld, actorName: string, appName: string, user: string): Promise<void> | | Given the <actorName> (open|opens) the "<appName>" app with the "<appURL>" URL using the auth state of "<userName>" user | Opens the application landing page in a new browser based on the URL with auth state injectedDetailsExamples:Given the host opens the "events" app with the "http://localhost:3000/login" URL using the auth state of "admin" userMethod:stepOpenAppUsingURLWithAuthState(scenarioWorld: ScenarioWorld, actorName: string, appName: string, user: string, url: string): Promise<void> | | Given the <actorName> (open|opens) the "<pageName>" page of the "<appName>" app with the "<appURL>" URL from "<locationName>" location | Opens the application landing page in a new browser based on the URL in the specified geo-location. For different geo-location refer https://www.browserstack.com/docs/ip-geolocationDetailsExamples:Given the host opens the "create-event" page of the "events" app with the "http://sampleapps:3000/Meeting" URL from "IN" locationMethod:stepOpenLandingPageOfAppUsingURLFromLocation(scenarioWorld: ScenarioWorld, actorName: string, pageName: string, appName: string, url: string, location: string): Promise<void> |
When steps
| Step | Summary | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | When (the <actorName>|I) (check|checks|select|selects) the "<elementSelectorName>" | Check a checkbox or radio buttonDetailsExamples:When the host checks the "simulcast option"When I select the "debugging option"Method:stepCheckTheCheckbox(scenarioWorld: ScenarioWorld, selectorName: string): Promise<void> | | When (the <actorName>|I) (uncheck|unchecks|unselect|unselects) the "<elementSelectorName>" | Uncheck a checkbox or radio buttonDetailsExamples:When the host unchecks the "simulcast option"When I unselect the "debugging option"Method:stepUncheckTheCheckbox(scenarioWorld: ScenarioWorld, selectorName: string): Promise<void> | | When (the <actorName>|I) (check|checks|select|selects) the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" | Check a checkbox or radio button by replacing the placeholder name with a value in the element selectorDetailsExamples:When the host checks the "role option" with the placeholder "ROLENAME:Auditor"When I select the "logging option" with the placeholder "LOGGER:debug"Method:stepCheckTheCheckbox(scenarioWorld: ScenarioWorld, selectorName: string, options: {placeholderPair: string}): Promise<void> | | When (the <actorName>|I) (uncheck|unchecks|unselect|unselects) the "<elementSelectorName>" with placeholder "<placeHolderName:placeHolderValue>" | Uncheck a checkbox or radio button by replacing the placeholder name with a value in the element selectorDetailsExamples:When the user unchecks the "role option" with the placeholder "ROLENAME:Auditor"When I unselect the "logging option" with the placeholder "LOGGER:debug"Method:stepUncheckTheCheckbox(scenarioWorld: ScenarioWorld, selectorName: string, options: {placeholderPair: string}): Promise<void> | | When (the <actorName>|I) (clicks|click) on the "<elementSelectorName>" | Click on an elementDetailsExamples:When the host clicks on the "next button"When I click on the "continue button"Method:stepClickOnTheElement(scenarioWorld: ScenarioWorld, selectorName: string): Promise<void> | | When (the <actorName>|I) (clicks|click) on the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" | Click on an element by replacing the placeholder name with a value in the element selectorDetailsExamples:When the host clicks on the "video view" with the placeholder "USERNAME:John"When I click on the "video tab" with the placeholder "VIDEONAME:ScreenShare" Method:stepClickOnTheElement(scenarioWorld: ScenarioWorld, selectorName: string, options: {placeholderPair: string}): Promise<void> | | When (the <actorName>|I) (clicks|click) on the location at "<elementSelectorName>" | Click on an element using locationsDetailsExamples:When the host clicks on the location at "next button"When I click on the location at "continue button"Method:stepClickOnTheElementLocation(scenarioWorld: ScenarioWorld, selectorName: string): Promise<void> | | When (the <actorName>|I) (store|stores) the clipboard text as a "<variableName>" variable | Store the clipboard text in the local storeDetailsExamples:When the user stores the clipboard text as a "VIEWER_URL" variableWhen I store the clipboard text as a "CO_HOST_URL" variableMethod:stepStoreClipboardText(scenarioWorld: ScenarioWorld, dataStoreType: string, variableName: string): Promise<void> | | When (the <actorName>/I) (store|stores) the clipboard text as a "<variableName>" variable in (local|global) data store | Store the clipboard text in the local or global data storeDetailsExamples:When the user stores the clipboard text a "VIEWER_URL" variable in the local data storeWhen I store the clipboard text as a "CO_HOST_URL" variable in the global data storeMethod:stepStoreClipboardText(scenarioWorld: ScenarioWorld, dataStoreType: string, variableName: string): Promise<void> | | When (the <actorName> |I )?(store|stores) the "<USER_DATA>" data as a "<variableName>" variable in the (local|global) data store | Store the given data in the local or global data storeDetailsExamples:When the host stores the "All-Hands" data as a "MEETING_NAME" variable in the local data storeWhen store the "All-Hands" data as a "MEETING_NAME" variable in the local data storeMethod:storeData(scenarioWorld: ScenarioWorld, dataStoreType: string, variableName: string, variableValue: unknown): void | | When (the <actorName> |I )?(store|stores) the "<USER_DATA>" data as a "<variableName>" in the (environment) variable | Store the given data in the environment variableDetailsExamples:When the host stores the "All-Hands" data as a "MEETING_NAME" in the environment variableWhen store the "All-Hands" data as a "MEETING_NAME" in the environment variableMethod:storeData(scenarioWorld: ScenarioWorld, dataStoreType: string, variableName: string, variableValue: unknown): void | | When (the <actorName>|I) (hover|hovers) the mouse over the "<elementSelectorName>" | Hover the mouse over the elementDetailsExamples:When the publisher hovers the mouse over the "footer"When I hover the mouse over the "next button"Method:stepHoverOverTheElement(scenarioWorld: ScenarioWorld, selectorName: string): Promise<void> | | When (the <actorName>|I) (hover|hovers) the mouse over the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" | Hover the mouse over the element by replacing the placeholder name with a value in the element selectorDetailsExamples:When the host hovers the mouse over the "chat delete icon" with the placeholder "MESSAGE:Hello All"When I hover the mouse over the "chat delete icon" with the placeholder "MESSAGE:Hi All"Method:stepHoverOverTheElement(scenarioWorld: ScenarioWorld, selectorName: string, options: {placeholderPair: string}): Promise<void> | | When (the <actorName>|I) (enters|enter) the "<textToEnter>" text in the "<elementSelectorName>" | Enter the text in an input fieldDetailsExamples:When the host enters the "John Bond" text in the "username input field"When I enter the "Meeting" text in the "meetingname input field"Method:stepEnterTextInInputField(scenarioWorld: ScenarioWorld, selectorName: string, inputText: string): Promise<void> | | When (the <actorName>|I) (clears|clear) the text from the "<elementSelectorName>" | Clears the text from an input fieldDetailsExamples:When the host clears the text from the "username input field"When I clear the text from the "meetingname input field"Method:stepClearTextFromInputField(scenarioWorld: ScenarioWorld, selectorName: string): Promise<void> | | When (the <actorName>|I) (presses|press) the "<key>" key in the "<elementSelectorName>" | Focuses the element and presses a combination of the keys.DetailsExamples:When the host presses the "Enter" key in the "username input field"When I press the "Enter" key in the "chat input"Method:stepPressKey(scenarioWorld: ScenarioWorld, selectorName: string, key: string): Promise<void> | | When (the <actorName>|I) (enters|enter) the "<textToEnter>" text in the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" | Enter the text in an input field by replacing the placeholder name with a valueDetailsExamples:When the host enters the "John Bond" text in the "username input field" with the placeholder "SECTION:admin"When I enter the "Meeting" text in the "meetingname input field with the placeholder "DAY:Monday"Method:stepEnterTextInInputField(scenarioWorld: ScenarioWorld, selectorName: string, inputText: string, options: {placeholderPair: string}): Promise<void> | | When (the <actorName>|I) (clears|clear) the text from the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" | Clears the text from an input field by replacing the placeholder name with a valueDetailsExamples:When the host clears the text from the "username input field" with the placeholder "SECTION:admin"When I clear the text from the "meetingname input field" with the placeholder "DAY:Monday"Method:stepClearTextFromInputField(scenarioWorld: ScenarioWorld, selectorName: string, options: {placeholderPair: string}): Promise<void> | | When (the <actorName>|I) (presses|press) the "<key>" key in the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" | Focuses the element and presses a combination of the keys by replacing the placeholder name with a value.DetailsExamples:When the host presses the "Enter" key in the "username input field" with the placeholder "SECTION:admin"When I press the "Enter" key in the "chat input" with the placeholder "INDEX:2"Method:stepPressKey(scenarioWorld: ScenarioWorld, selectorName: string, key: string, options: {placeholderPair: string}): Promise<void> | | When (the <actorName>|I) (add|adds) the below JavaScript to the page |
"""
\<Java Script Code\>
""" | Adds a JavaScript into the page<br/><br/><details><summary>Details</summary><br/><b>Examples:</b><br/>When the host adds the below JavaScript to the page
"""
const getVideoPixelSums = () =\> {
const canvas = document.createElement('canvas')
const id = document.getElementById('player')
const ctx = canvas.getContext('2d')
ctx.drawImage(id, 0, 0, id.videoHeight - 1, id.videoWidth - 1)
const imageData = ctx.getImageData(0, 0, id.videoHeight - 1, id.videoWidth - 1).data
const sum = imageData.reduce((total, current) =\> total + current)
if (sum === 255 * (Math.pow(id.videoHeight - 1, (id.videoWidth - 1) * (id.videoWidth - 1)))) {
return 0
}
return sum
}
"""<br/><br/><b>Method:</b><br/>stepAddJavaScriptToPage(scenarioWorld: ScenarioWorld, javaScript: string): Promise\<ElementHandle\></details>
When (the <actorName>|I) (add|adds) the "<JavaScriptFile>" JavaScript file to the page | Adds a JavaScript file into the pageDetailsExamples:When the host adds the "resources/js/viewer.js" JavaScript file to the pageMethod:stepAddJavaScriptFileToPage(scenarioWorld: ScenarioWorld, javaScriptFile: string): Promise<ElementHandle> When (the <actorName>|I) (execute|executes|run|runs) the "<JavaScript>" JavaScript (function|command) on the page | Executes a JavaScript function|command on the pageDetailsExamples:When the host executes the "getVideoPixelSums()" JavaScript function on the pageWhen the host runs the "window.publish.isActive()" JavaScript function on the pageMethod:stepExecuteJavaScriptOnPage(scenarioWorld: ScenarioWorld, javaScript: string): Promise<unknown> When (the <actorName>|I) press "<KEY>" key | Press keyboard keys on the pageDetailsExamples:When the host press the "Escape" keyWhen I press the "Shift+A" keyMethod:stepPressKeyboardKeysOnThePage(scenarioWorld: ScenarioWorld, key: string): Promise<void> When (the <actorName>|I) (refresh|refreshes) the page | Refresh the pageDetailsExamples:When the host refreshes the pageWhen I refresh the pageMethod:stepRefreshThePage(scenarioWorld: ScenarioWorld): Promise<void> When (the <actorName>|I) switch to the "<appName>" app | Switch to another page when multiple pages are openedDetailsExamples:When the host switch to the "events" appWhen I switch to the "events" appMethod:stepSwitchToPage(scenarioWorld: ScenarioWorld, appName: string): Promise<void> When (the <actorName>|I)? (store|stores) the page url as a "<VARIABLENAME>" variable in the (local|global) data store | Stores the page url in the local or global data store with the given variable nameDetailsExamples:When the host stores the page url as a "BASE_APP_URL" variable in the local data storeWhen store the page url as a "BASE_APP_URL" variable in the local data storeMethod:stepStorePageURL(scenarioWorld: ScenarioWorld, dataStoreType: string, variableName: string): Promise<void> When (the <actorName>|I)? (store|stores) the page url as a "<VARIABLENAME>" in the (environment) variable | Stores the page url in the environment with the given variable nameDetailsExamples:When the host stores the page url as a "BASE_APP_URL" in the environment variableWhen store the page url as a "BASE_APP_URL" in the environment variableMethod:stepStorePageURL(scenarioWorld: ScenarioWorld, dataStoreType: string, variableName: string): Promise<void> When (the <actorName>|I) (switch|switches) to the "<tabName>" (tab|page) | Switch to another tab using the name when opened from default pageDetailsExamples:When the host switches to the "Broadcast" tabWhen I switch to the "Live Viewer" tabMethod:stepSwitchToTabUsingName(scenarioWorld: ScenarioWorld, tabName: string): Promise<void> When (the <actorName>|I) (switch|switches) to the "<tabIndex>" (st|nd|rd|th) (tab|page) | Switch to another tab using the index when opened from default pageDetailsExamples:When the host switches to the "2" nd tabWhen I switch to the "3" rd tabMethod:stepSwitchToTabUsingIndex(scenarioWorld: ScenarioWorld, tabIndex: number): Promise<void> When (the <actorName>|I) (store|stores|save|saves) the auth state of "<userName>" user | Stores the authenication state of the logged in applicaton and can be used to skip loginDetailsExamples:When the host stores the auth state of "admin" userWhen I save the auth state of "approval" userMethod:stepStoreAuthState(scenarioWorld: ScenarioWorld, user: string): Promise<void> When (the <actorName>|I) (get|gets) the ip address of the client machine | Get the IP address of the client machine where the page is openedDetailsExamples:When the host gets the ip address of the client machineWhen I get the ip address of the client machineMethod:stepGetClientIPAddress(scenarioWorld: ScenarioWorld): Promise<string> When (the <actorName>|I) (scroll|scrolls) to the (top|bottom) of page | Scroll to the top or bottom of the pageDetailsExamples:When the host scrolls to the top of pageWhen I scroll to the bottom of pageMethod:stepScrollToTopOrBottomOfPage(scenarioWorld: ScenarioWorld, move: string): Promise<void> When (the <actorName>|I) (store|stores) the "<elementSelectorName>" text as a "<variableName>" variable in the (local|global) data store | Read the element text and store in the local or global data storeDetailsExamples:When the host stores the "viewer link" text as a "VIEWER_URL" variable in the local data storeWhen I store the "timer" text as a "TIMER_VALUE" variable in the global data storeMethod:stepStoreElementText(scenarioWorld: ScenarioWorld, selectorName: string, dataStoreType: string, variableName: string): Promise<void> When (the <actorName>|I) (store|stores) the "<elementSelectorName>" value as a "<variableName>" variable in the (local|global) data store | Read the element value and store in the local or global data storeDetailsExamples:When the host store the "meetingname input field" value as a "MEETING_NAME" variable in the local data storeWhen I store the "username input field" value as a "USER_NAME" variable in the global data storeMethod:stepStoreElementValue(scenarioWorld: ScenarioWorld, selectorName: string, dataStoreType: string, variableName: string): Promise<void> When (the <actorName>|I) (store|stores) the "<elementSelectorName>" text as a "<variableName>" in the environment variable | Read the element text and store in the environment variableDetailsExamples:When the host store the "viewer link" text as a "VIEWER_URL" in the environment variableWhen I store the "timer" text as a "TIMER_VALUE" in the environment variableMethod:stepStoreElementText(scenarioWorld: ScenarioWorld, selectorName: string, dataStoreType: string, variableName: string): Promise<void> When (the <actorName>/I) (store|stores) the "<elementSelectorName>" value as a "<variableName>" in the environment variable | Read the element value and store in the environment variableDetailsExamples:When the host store the "meetingname input field" value as a "MEETING_NAME" in the environment variableWhen I store the "username input field" value as a "USER_NAME" in the environment variableMethod:stepStoreElementValue(scenarioWorld: ScenarioWorld, selectorName: string, dataStoreType: string, variableName: string): Promise<void> When (the <actorName>|I) (get|gets|read|reads) the "<elementSelectorName>" text | Read the element text and return element textDetailsExamples:When the host reads the "viewer link" textMethod:stepGetElementText(scenarioWorld: ScenarioWorld, selectorName: string): Promise<string | null> When (the <actorName>|I) (get|gets|read|reads) the "<elementSelectorName>" value | Read the element value and return element valueDetailsExamples:When the host reads the "username input" valueMethod:stepGetElementValue(scenarioWorld: ScenarioWorld, selectorName: string): Promise<string | null> When (the <actorName>|I) (get|gets|read|reads) the "<elementSelectorName>" count | Get the element count and return element countDetailsExamples:When the host gets the "blogs link" countMethod:stepGetElementCount(scenarioWorld: ScenarioWorld, selectorName: string): Promise<number> is "<elementSelectorName>" <expectedElementState> | Get the element state and return element stateDetailsExamples:is "blog link" displayedMethod:stepGetElementState(scenarioWorld: ScenarioWorld, selectorName: string, state: string): Promise<boolean> When (the <actorName>|I) (get|gets|read|reads) the "<elementSelectorName>" table data | Get the table dataDetailsExamples:When the host gets the "ingest stats" table dataMethod:stepGetElementTableData(scenarioWorld: ScenarioWorld, selectorName: string): Promise<string[][]> When (the <actorName>|I) (get|gets|read|reads) the "<attributeName>" attribute value of "<elementSelectorName>" | Read the element attribute value and return attribute valueDetailsExamples:When the host reads thereads the "aria-checked" attribute value of "audio input"Method:stepGetElementAttribute(scenarioWorld: ScenarioWorld, selectorName: string, attributeName: string): Promise<string | null> When (the <actorName>|I) (get|gets|read|reads) the page URL | Read the page URL and return URLDetailsExamples:When the host reads the page URLMethod:stepGetPageURL(scenarioWorld: ScenarioWorld): Promise<string> When (the <actorName>|I) (get|gets|read|reads) the page title | Read the page title and return titleDetailsExamples:When the host reads the page titleMethod:stepGetPageTitle(scenarioWorld: ScenarioWorld): Promise<string> When (the <actorName>|I) (get|gets|read|reads) the selected option from "<elementSelectorName>" | Read the selected option from dropdown and returns a first selected itemDetailsExamples:When the host reads the selected option from "country dropdown"Method:stepGetSelectedOptionFromDropdown(scenarioWorld: ScenarioWorld, selectorName: string): Promise<string> When (the <actorName>|I) (get|gets|read|reads) the selected options from "<elementSelectorName>" | Read the selected options from dropdown and returns a list of selected optionsDetailsExamples:When the host reads the selected options from "country dropdown"Method:stepGetSelectedOptionsFromDropdown(scenarioWorld: ScenarioWorld, selectorName: string): Promise<string[]> When (the <actorName>|I) (get|gets|read|reads) the "<elementSelectorName>" inner HTML | Read the element inner HTML and return element inner HTMLDetailsExamples:When the host reads the "viewer text" inner HTMLMethod:stepGetElementInnerHTML(scenarioWorld: ScenarioWorld, selectorName: string): Promise<string | null> When (the <actorName>|I) (take|takes) the screenshot of the "<elementSelectorName>" and save it with the name "<fileName>" | Take a screenshot of the element and store itDetailsExamples:When the host takes the screenshot of the "video tile" and save it with the name "host_video_tile"Method:stepTakeScreenOfElement(scenarioWorld: ScenarioWorld, selectorName: string, imgName: string): Promise<void> When (the <actorName>|I) (take|takes) the screenshot of the "<elementSelectorName>" with the mask "<elementSelectorName>" and save it with the name "<fileName>" | Take the screenshot of the element by masking some elements by pink box and store itDetailsExamples:When the host takes the screenshot of the "video tile" with the mask "speaking indicator icon" and save it with the name "host_video_tile"Method:stepTakeScreenOfElement(scenarioWorld: ScenarioWorld, selectorName: string, imgName: string, {maskSelectorNames: string}): Promise<void> When (the <actorName>|I) (take|takes) the screenshot of the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" and save it with the name "<fileName>" | Take a screenshot of the element and store it by replacing the placeholder name with a valueDetailsExamples:When the host takes the screenshot of the "video tile" with the placeholder "INDEX:1" and save it with the name "host_video_tile"Method:stepTakeScreenOfElement(scenarioWorld: ScenarioWorld, selectorName: string, imgName: string, options: {placeholderPair: string}): Promise<void> When (the <actorName>|I) (take|takes) the screenshot of the "<elementSelectorName>" with the mask "<elementSelectorName>" and placeholder "<placeHolderName:placeHolderValue>" and save it with the name "<fileName>" | Take the screenshot of the element by masking some elements by pink box and store it by replacing the placeholder name with a valueDetailsExamples:When the host takes the screenshot of the "video tile" with the mask "speaking indicator icon" and placeholder "INDEX:1" and save it with the name "host_video_tile"Method:stepTakeScreenOfElement(scenarioWorld: ScenarioWorld, selectorName: string, imgName: string, {maskSelectorNames: string, placeholderPair: string}): Promise<void> When (the <actorName>|I) (select|selects) the option with the (value|label) "<option>" from the "<elementSelectorName>" | Select the option from the select dropdown using value or labelDetailsExamples:When the host selects the option with the label "Australia" from the "country dropdown"When I select the option with the value "NSW" from the "state dropdown"Method:stepSelectOption(scenarioWorld: ScenarioWorld, selectorName: string, optionToSelect: string, optionType: string): Promise<void> When (the <actorName>|I) (select|selects) the "<index>" (?:st|nd|rd|th) option from the "<elementSelectorName>" | Select the option from the select dropdown based on indexDetailsExamples:When the host selects the "2" nd option from the "country dropdown"When I select the "1" st option from the "state dropdown"Method:stepSelectOptionUsingIndex(scenarioWorld: ScenarioWorld, selectorName: string, index: number): Promise<void> When (the <actorName>|I) (select|selects) the option with the (value|label) "<option>" from the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" | Select the option from the select dropdown using value or label by replacing the placeholder name value pair in the locatorDetailsExamples:When the host selects the option with the label "Australia" from the "country dropdown" with the placeholder "SECTION:OriginCountry"When I select the option with the value "NSW" from the "state dropdown" with the placeholder "SECTION:OriginCountry"Method:stepSelectOption(scenarioWorld: ScenarioWorld, selectorName: string, optionToSelect: string, optionType: string, options: {placeholderPair: string}): Promise<void> When (the <actorName>|I) (select|selects) the "<index>" (?:st|nd|rd|th) option from the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" | Select the option from the select dropdown based on index by replacing the placeholder name value pair in the locatorDetailsExamples:When the host selects the "2" nd option from the "country dropdown" with the placeholder "SECTION:OriginCountry"When I select the "1" st option from the "state dropdown" with the placeholder "SECTION:OriginCountry"Method:stepSelectOptionUsingIndex(scenarioWorld: ScenarioWorld, selectorName: string, index: number, options: {placeholderPair: string}): Promise<void> When (the <actorName>|I) (wait|waits) for "<secondsToWait>" seconds | Wait for given secondsDetailsExamples:When the host waits for "10" secondsMethod:stepWaitForSeconds(seconds: number): Promise<void> When (the <actorName>|I) (wait|waits) for "<minutesToWait>" minutes | Wait for the given minutesDetailsExamples:When the host waits for "2" minutesMethod:stepWaitForSeconds(seconds: number): Promise<void> When (the <actorName>|I) (wait|waits) for "<elementSelectorName>" to be <expectedElementState> | Wait for element to be displayed | visible | invisible | hidden | enabled | disabled | editable | checked | selected with default timeout of 20 sec, this step will return true if element state is satisfied otherrwise falseDetailsExamples:When the host waits for "icon" to be visibleWhen the host waits for "icon" to be hiddenMethod:stepWaitForElement(scenarioWorld: ScenarioWorld, selectorName: string, state: string): Promise<boolean> When (the <actorName>|I) (wait|waits) for "<<elementSelectorName>>" to be <expectedElementState> in "<timeout>" seconds | Wait for element to be displayed | visible | invisible | hidden | enabled | disabled | editable | checked | selected in the given timeout seconds, this step will return true if element state is satisfied otherrwise falseDetailsExamples:When the host waits for "icon" to be visible in "10" secondsWhen the host waits for "icon" to be hidden in "5" secondsMethod:stepWaitForElement(scenarioWorld: ScenarioWorld, selectorName: string, state: string, timeoutSec: number): Promise<boolean> When (the <actorName>|I) (wait|waits) for the "(networkidle|domcontentloaded|load)" load state | Wait for page until the specified load state is firedDetailsExamples:When the host waits for "networkidle" load stateWhen the host waits for "domcontentloaded" load stateMethod:stepWaitForLoadState(scenarioWorld: ScenarioWorld, loadState: string): Promise<boolean> When (the <actorName>|I) (wait|waits) for "<elementSelectorName>" text to be <expectedElementText> | Wait for element text to be expected text with default timeout of 20 sec, this step will return true if element text is matched otherrwise falseDetailsExamples:When the host waits for "state" text to be "Active"Method:stepWaitForElementText(scenarioWorld: ScenarioWorld, selectorName: string, expectedText: string): Promise<boolean> When (the <actorName>|I) (wait|waits) for "<elementSelectorName>" text to be <expectedElementText> in "<timeout>" seconds | Wait for element text to be expected text in the given timeout seconds, this step will return true if element text is matched otherrwise falseDetailsExamples:When the host waits for "state" text to be "Active" in "10" secondsMethod:stepWaitForElementText(scenarioWorld: ScenarioWorld, selectorName: string, expectedText: string, timeoutSec: number): Promise<boolean> When (the <actorName>|I) (wait|waits) for "<elementSelectorName>" value to be <expectedElementValue> | Wait for element value to be expected value with default timeout of 20 sec, this step will return true if element value is matched otherrwise falseDetailsExamples:When the host waits for "status" value to be "Active"Method:stepWaitForElementValue(scenarioWorld: ScenarioWorld, selectorName: string, expectedValue: string): Promise<boolean> When (the <actorName>|I) (wait|waits) for "<elementSelectorName>" value to be <expectedElementValue> in "<timeout>" seconds | Wait for element value to be expected value in the given timeout seconds, this step will return true if element value is matched otherrwise falseDetailsExamples:When the host waits for "status" value to be "Active" in "10" secondsMethod:stepWaitForElementValue(scenarioWorld: ScenarioWorld, selectorName: string, expectedValue: string, timeoutSec: number): Promise<boolean>
Then steps
| Step | Summary | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Then the clipboard text should( not)? be equal to "<expectedText>" | Verify the clipboard textDetailsExamples:Then the clipboard text should be equal to "http://localhost:3000/meet/"Method:stepVerifyClipboardText(scenarioWorld: ScenarioWorld, expectedText: string, options: {not: boolean}): Promise<boolean> | | Then the clipboard text should( not)? be equal to the stored "<variabeName>" variable from the (local|global) data store | Verify the clipboard text to the stored variable value from the (local|global) data storeDetailsExamples:Then the clipboard text should be equal to the stored "HOST_LINK" variable from the local data storeMethod:stepVerifyClipboardTextFromDataStore(scenarioWorld: ScenarioWorld, dataStoreType: string, variableName: string, options: {not: boolean}): Promise<boolean> | | Then the number of "<elementSelectorName>" count should( not)? be "<expectedCount>" | Verify the number of elementsDetailsExamples:Then the number of "input field" count should be "2"Method:stepVerifyElementCount(scenarioWorld: ScenarioWorld, selectorName: string, expectedCount: string, options: {not: boolean}): Promise<boolean> | | Then the number of "<elementSelectorName>" count should( not)? be less than "<expectedCount>" | Verify the number of elements are less than expected countDetailsExamples:Then the number of "input field" count should be less than "2"Method:stepVerifyElementCountLessThan(scenarioWorld: ScenarioWorld, selectorName: string, expectedCount: string, options: {not: boolean}): Promise<boolean> | | Then the number of "<elementSelectorName>" count should( not)? be greater than "<expectedCount>" | Verify the number of elements are greater than expected countDetailsExamples:Then the number of "input field" count should be greater than "2"Method:stepVerifyElementCountGreaterThan(scenarioWorld: ScenarioWorld, selectorName: string, expectedCount: string, options: {not: boolean}): Promise<boolean> | | Then the number of "<elementSelectorName>" count should( not)? be less than equal to "<expectedCount>" | Verify the number of elements are less than equal to expected countDetailsExamples:Then the number of "input field" count should be less than equal to "2"Method:stepVerifyElementCountLessThanEqualTo(scenarioWorld: ScenarioWorld, selectorName: string, expectedCount: string, options: {not: boolean}): Promise<boolean> | | Then the number of "<elementSelectorName>" count should( not)? be greater than equal to "<expectedCount>" | Verify the number of elements are greater than equal to expected countDetailsExamples:Then the number of "input field" count should be greater than equal to "2"Method:stepVerifyElementCountGreaterThanEqualTo(scenarioWorld: ScenarioWorld, selectorName: string, expectedCount: string, options: {not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" should( not)? be <expectedElementState> | Verify element state such as displayed | visible | invisible | hidden | enabled | disabled | editable | checked | selectedDetailsExamples:Then the "username input field" should be displayedThen the "next button" should be enabledMethod:stepVerifyElementState(scenarioWorld: ScenarioWorld, selectorName: string, state: string, options: {not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" should( not)? be <expectedElementState>|<expectedElementState> | Verify element state such as displayed | visible | invisible | hidden | enabled | disabled | editable | checked | selectedDetailsExamples:Then the "username input field" should be displayed|enabled|editableThen the "next button" should be displayed|enabledMethod:stepVerifyElementState(scenarioWorld: ScenarioWorld, selectorName: string, state: string, options: {not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" should( not)? be <expectedElementState> | Verify element state such as displayed | visible | invisible | hidden | enabled | disabled | editable | checked | selected by replacing placeholder name with value in the element selectorDetailsExamples:Then the "video tile" with the placeholder "NAME:John" should be displayedThen the "video tile" with the placeholder "NAME:Jony" should not be displayedMethod:stepVerifyElementState(scenarioWorld: ScenarioWorld, selectorName: string, state: string, options: {placeholderPair: string, not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" with the placeholder "<placeHolderName:placeHolderValue>" should( not)? be <expectedElementState>|<expectedElementState> | Verify element state such as displayed | visible | invisible | hidden | enabled | disabled | editable | checked | selected by replacing placeholder name with value in the element selectorDetailsExamples:Then the "video tile" with the placeholder "NAME:John" should be displayed|enabledThen the "video tile" with the placeholder "NAME:Jony" should not be displayed|enabledMethod:stepVerifyElementState(scenarioWorld: ScenarioWorld, selectorName: string, state: string, options: {placeholderPair: string, not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" text should( not)? be "<expectedText>" | Verify element textDetailsExamples:Then the "meeting name" text should be "All-Hands"Then the "timer" text should not be "00:00:00"Method:stepVerifyElementText(scenarioWorld: ScenarioWorld, selectorName: string, expectedText: string, options: {not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" text should( not)? contain "<expectedText>" | Verify element contains textDetailsExamples:Then the "app version" text should contain "SDK"Then the "app version" text should not contain "RTS"Method:stepVerifyElementContainText(scenarioWorld: ScenarioWorld, selectorName: string, expectedText: string, options: {not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" text should( not)? match "<expectedTextRegEx>" | Verify element match text using regexDetailsExamples:Then the "timer" text should match "^00:00:00$"Then the "timer" text should not contain "^00:00:00$"Method:stepVerifyElementMatchText(scenarioWorld: ScenarioWorld, selectorName: string, expectedText: string, options: {not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" text with the placeholder "<placeHolderName:placeHolderValue>" should( not)? be "<expectedText>" | Verify element text by replacing placeholder name with value in the element selectorDetailsExamples:Then the "host video view username" text with the placeholder "NAME:John" should be "John Bond"Then the "host video view username" text with the placeholder "NAME:John" should not be "John Board"Method:stepVerifyElementText(scenarioWorld: ScenarioWorld, selectorName: string, expectedText: string, options: {placeholderPair: string, not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" text with the placeholder "<placeHolderName:placeHolderValue>" should( not)? contain "<expectedText>" | Verify element contains text by replacing placeholder name in the element selectorDetailsExamples:Then the "user id" text with the placeholder "NAME:Admin" should contain "John"Then the "user id" text with the placeholder "NAME:Admin" should not contain ""Method:stepVerifyElementContainText(scenarioWorld: ScenarioWorld, selectorName: string, expectedValue: string, options: {placeholderPair: string, not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" text with the placeholder "<placeHolderName:placeHolderValue>" should( not)? match "<expectedTextRegEx>" | Verify element match text using regex by replacing placeholder name in the element selectorDetailsExamples:Then the "token id" text with the placeholder "NAME:Admin" value should match "^d{7}$"Then the "timer" text with the placeholder "NAME:Admin" should not match "^00:00:00$"Method:stepVerifyElementMatchText(scenarioWorld: ScenarioWorld, selectorName: string, expectedText: string, options: {placeholderPair: string, not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" value should( not)? be "<expectedValue>" | Verify element valueDetailsExamples:Then the "username input field" value should be "John"Then the "username input field" value should not be "Jony"Method:stepVerifyElementValue(scenarioWorld: ScenarioWorld, selectorName: string, expectedValue: string, options: {not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" value should( not)? contain "<expectedValue>" | Verify element contains valueDetailsExamples:Then the "account id" value should contain "TfW"Then the "account id" value should not contain "RTS"Method:stepVerifyElementContainValue(scenarioWorld: ScenarioWorld, selectorName: string, expectedValue: string, options: {not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" value should( not)? match "<expectedTextRegEx>" | Verify element match value using regexDetailsExamples:Then the "token id" value should match "^d{7}$"Then the "timer" value should not match "^00:00:00$"Method:stepVerifyElementMatchValue(scenarioWorld: ScenarioWorld, selectorName: string, expectedValue: string, options: {not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" value with the placeholder "<placeHolderName:placeHolderValue>" should( not)? contain "<expectedValue>" | Verify element contains value by replacing placeholder name in the element selectorDetailsExamples:Then the "user id" value with the placeholder "NAME:Admin" should contain "John"Then the "user id" value with the placeholder "NAME:Admin" should not contain ""Method:stepVerifyElementContainValue(scenarioWorld: ScenarioWorld, selectorName: string, expectedValue: string, options: {placeholderPair: string, not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" value with the placeholder "<placeHolderName:placeHolderValue>" should( not)? match "<expectedTextRegEx>" | Verify element match value using regex by replacing placeholder name in the element selectorDetailsExamples:Then the "token id" value with the placeholder "NAME:Admin" should match "^d{7}$"Then the "timer" value with the placeholder "NAME:Admin" should not match "^00:00:00$"Method:stepVerifyElementMatchValue(scenarioWorld: ScenarioWorld, selectorName: string, expectedValue: string, options: {placeholderPair: string, not: boolean}): Promise<boolean> | | Then the "<elementSelectorName>" attribute "<attributeName>" value should( not)? be "<attributeValue>" | Verify element attribute valueDetailsExamples:Then the "user name input field" attribute "placeholder" value should be "Enter your name"Method:stepVerifyElemen