npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cucumber-playwright-framework

v0.1.0-beta.42

Published

BDD test automation framework using Cucumber and Playwright for web applications

Downloads

2,094

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