Skip navigation

Create a scenario

Properties

Required properties

url

Type: string.

The URL you want to test.

Optional properties

actions

Type: array of actions.
Default value: [].

Provide the list of actions should be executed sequentiality by the test browser. Available options are:

ActionUse for
checkCheck a radio or checkbox
clickClick an element
focusFocus an element
hideHide an element - set visibility: hidden !important
hoverHover an element
inputType text in an element or upload files
pressPress a key (or key combination) on an element
removeRemove an element - set display: none !important
scrollScroll to an element
selectSelect an option inside an select element
uncheckUncheck a radio or checkbox
waitWait for X miliseconds or wait for an element to appears

For more infomation, please refer to Create an action.

A scenario can have multiple actions. Sample:

actions:

  # Check the checkbox with `tos-accept` ID
  - check: checkbox#tos-accept

  # Click the button with `submit` class
  - click: button.submit

  # Focus an element with `username` ID
  - focus: '#username'

  # Hide the element with `cookie-modal` ID
  - hide: '#cookie-modal'

  # Hover mouse over an element contains `my-chart` ID
  - hover: '#my-chart'

  # Type `My Name` in an input element with `username` ID
  - input: 'input#username'
    value: My Name
    append: false

  # Type `my-name@domain.com` in an input element with `email` ID
  - input: 'input#email'
    value: my-name@domain.com
    append: false

  # Select all content inside an element with `text-area` ID
  - press: '#text-area'
    key: Ctrl+A

  # Remove a `div` element with `random-content` class
  - remove: div.random-content

  # Scroll to an element with `report` class
  - scroll: .report

  # Uncheck the checkbox named `subscrible-email`
  - uncheck: checkbox[name="subscrible-email"]

  # Delay 1 second
  - wait: 1000

  # Wait for an element with `popup` class appears
  - wait: .popup

Please note that if actions property is set, following properties with be ignored:

  • clickSelector
  • clickSelectors
  • hoverSelector
  • hoverSelectors
  • keyPressSelector
  • keyPressSelectors
  • scrollToSelector
  • postInteractionWait
cssOverridePath

Type: string.
Default value: Test suite's value.

cookiePath

Type: string.
Default value: Test suite's value.

Import cookies in YAML format.

delay

Type: number.
Default value: 1000.

When the page is ready, wait for X miliseconds before takeing the screenshot.
Use for the scenario where the page under test need a long time to load or render.

id

Type: string.
Default value: empty.

Scenario ID. This property is for identifying this scenario when you re-use in other one. Use any value you find meaningful, but should be as short and concise as possible.
Recommend to use only lowercase alphanumeric charaters (a-z, 0-9), minus (-) and underscore (_).

Use together with needs property.

Example:

scenarios:
  - url: https://www.domain.com
    id: first-visit
jsOnReadyPath

Type: string.
Default value: Test suite's value.

label

Type: string.

Name of current scenario.
If not set, the path of current URL will be used.

misMatchThreshold

Type: number.
Default value: Test suite's value.
Min value: 0.
Max value: 100.

This parameter represents the percentage of permissible differing pixels for a test to pass. A lower value ensures more precise test results. The choice of a suitable value depends entirely on your project's specific requirements.

needs

Type: string | string[].
Default value: [].

List of the IDs of other scenarios needed to be executed before this scenario.

Example:

scenarios:
  - url: https://www.domain.com
    id: open-form
    actions:
      - click: '#form-popup'

  - url: https://www.domain.com
    id: input-form
    # Execute `open-form` actions
    # before executing this scenario's actions
    needs: open-form
    actions:
      - input: input#username
        value: My Name
      - input: input#password
        value: Passw0rd!
  
  - url: https://www.domain.com
    label: Submit form
    # Execute `open-form` and `input-form` actions
    # before executing this scenario's actions
    needs: input-form
    actions:
      - click: button[type="submit"]
noScrollTop

Type: boolean.
Default value: false.

Disable scrollTop prior to screen capture.

postInteractionWait

Type: number.
Default value: Test suite's value.

Wait for X miliseconds prior to screen shot.

useCssOverride

Type: boolean.
Accepted values: true or false.
Default value: true.

Should the scenario use CSS override.

viewportNames

Type: string | string[].
Default value: all available viewports.

Choose the viewports you want applied for the scenario.
If this property is set at both the scenario and test suite levels, the scenario-level setting will take precedence.

Sample:

scenarios:
  - url: https://tuyen.blog/
    label: Click theme toggle on tablet and desktop
    viewportNames:
      - tablet
      - desktop
    actions:
      - click: theme-toggle

Obsoleted properties

clickSelector - obsoleted

OBSOLETED - use actions.click instead.

Type: string.
Default value: Empty.

Click the specified DOM element prior to screen shot.
Notes: this property will be ignored if actions property is set.

clickSelectors - obsoleted

OBSOLETED - use actions.click instead.

Type: string[].
Default value: [].

Click the specified DOM elements prior to screen shot.
Notes: this property will be ignored if actions property is set.

hideSelectors - obsoleted

OBSOLETED - use actions.hide instead.

Type: string[].
Default value: Test suite's value.

Array of selectors set to visibility: hidden
Notes: this property will be ignored if actions property is set.

removeSelectors - obsoleted

OBSOLETED - use actions.remove instead.

Type: string[].
Default value: Test suite's value.

Array of selectors set to display: none.
Notes: this property will be ignored if actions property is set.