# ActionTypes

## Action Types

* [Overview](#overview)
* [Launch](#launch)
  * [Go To URL](#go-to-url)
  * [Launch](#launch-1)
* [Conditional](#conditional)
  * [Start If](#start-if)
  * [End If](#end-if)
* [Gestures](#gestures)
  * [Tap](#tap)
  * [Tap By Relative Coordinates](#tap-with-coordinates)
  * [Tap With Coordinates](#tap-with-coordinates)
  * [Double Tap](#double-tap)
  * [Drag and Drop](#drag-and-drop)
  * [Dynamic Tap](#dynamic-tap)
  * [Dynamic Double Tap](#dynamic-double-tap)
  * [Go Back](#go-back)
  * [Long Press](#long-press)
  * [Open Notifications](#open-notifications)
  * [Press Home](#press-home)
* [Swipe Gestures](#swipe-gestures)
  * [Custom Swipe](#custom-swipe)
  * [Swipe Up](#swipe-up)
  * [Swipe Down](#swipe-down)
  * [Swipe Element](#swipe-element)
  * [Swipe Left](#swipe-left)
  * [Swipe Right](#swipe-right)
  * [Swipe To Element](#swipe-to-element)
* [Wait Actions](#wait-actions)
  * [Wait](#wait)
  * [Wait Until](#wait-until)
  * [Wait Until Element Contains Text](#wait-until-element-contains-text)
  * [Wait Until Element Has Text](#wait-until-element-has-text)
  * [Wait Untill Element Is Clickable](#wait-until-element-is-clickable)
  * [Wait Until Element Matches Pattern](#wait-until-element-matches-pattern)
* [Windows Actions](#window-actions)
  * [Landscape](#landscape)
  * [Portrait](#portrait)
  * [Push File](#push-file)
  * [Install](#install)
  * [Uninstall App](#uninstall-app)
  * [Close App](#close-app)
  * [Reset App](#reset-app)
  * [Switch App](#switch-app)
  * [Switch Context](#switch-context)
  * [Terminate App](#terminate-app)
  * [Get All Context](#get-all-context)
  * [Activate App](#activate-app)
* [Hardware Actions](#hardware-actions)
  * [Volume Down](#volume-down)
  * [Volume Up](#volume-up)
  * [Change Network Speed](#change-network-speed)
  * [Picker Wheel](#picker-wheel)
* [Input Events](#input-events)
  * [Clear](#clear)
  * [Press Keys](#press-keys)
  * [Send Text](#send-text)
  * [Set](#set)
  * [Set Clipboard Text](#set-clipboard-text)
* [API](#api)
  * [Get](#get)
  * [Post](#post)
  * [Put](#put)
  * [Delete](#delete)
* [Data Handlers](#data-handlers)
  * [Get Element Count](#get-element-count)
  * [Create Variable](#create-variable)
  * [Verify OTP](#verify-otp)
  * [Dynamic Contains](#dynamic-contains)
  * [Dynamic Element Exists](#dynamic-element-exists)
  * [Dynamic Press Keys](#dynamic-press-keys)
  * [Dynamic Set](#dynamic-set)
  * [Dynamic Verify](#dynamic-verify)
  * [Dynamic Verify Is Not](#dynamic-verify-is-not)
  * [Dynamic Verify Attribute](#dynamic-verify-attribute)
  * [Get Clipboard Text](#get-clipboard-text)
  * [Set Location](#set-location)
  * [Execute Test Case](#execute-test-case)
  * [Execute Java Code](#execute-java-code)
  * [Exeucte Query](#execute-query)
  * [Extract Words](#extract-words)
  * [Remove Words](#remove-words)
  * [Modify Dynamic Value](#modify-dynamic-value)
* [Verifiers](#verifier)
  * [Contains](#contains)
  * [Is Visible](#is-visible)
  * [Is Blank](#is-blank)
  * [Verify Attribute Is Not](#verify-attribute-is-not)
  * [Verify Attribute](#verify-attribute)
  * [Verify Text](#verify-text)
  * [Verify Clipboard Text](#verify-clipboard-text)
  * [Verify Push Notification Text](#verify-push-notification-text)
  * [Verify Greater Than](#verify-greater-than)
  * [Verify Less Than](#verify-less-than)
  * [Verify Not Null](#verify-not-null)
  * [Verify Regular Expression](#verify-regular-expression)
* [Element Verifiers](#element-verifiers)
  * [Verify Element Count](#verify-element-count)
  * [Element Position Is](#element-position-is)
  * [Element Position Is Not](#element-position-is-not)
  * [Element Not Exists](#element-not-exists)
  * [Elements Exists](#element-exists)
  * [Element Enabled](#element-enabled)
  * [Element Disabled](#element-disabled)
* [AI (Beta)](#ai-beta)
  * [Click By Image](#click-by-image)
  * [Set By Image](#set-by-image)
  * [Verify By Image](#verify-by-image)
  * [Visual Testing Verify Screen](#visual-testing-verify-screen)

## Overview

The Mobile action types in Qyrus are divided into the below groups.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-60acf739e8976f9d1f5a1313afdfc71162560106%2FactionTypeOverview.png?alt=media)

**Action Type Fields**

The required fields for each action can be categorized into the following:

* Step Description
* Element locator information
* Data need to perform the action i.e. text to enter in a text field

***Note: Every step requires a "Step Description" and an "Action Type"***

**\*\*\*Note: Click on the eye icon with the slash in the data field of an action to hide any sensitive information while showing the script to someone else or from the reports page. \*\*\***

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-8a2c1f6699c57d3eacd96a714032d3a5decef2f8%2FoverviewData.png?alt=media)

## Launch

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-138e87aebde378681d146a91050c9d1b394f145e%2Flaunch.png?alt=media)

### Go to URL

Navigates to the specified URL; used after opening a mobile browser

* Required Inputs
  * URL

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-55faca363b913fd393e20f582d4a252a7b016127%2FgoToURL.png?alt=media)

### Launch

* Launch the selected app

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-45fba18fbdefc52f9d12455818322fd397d1571b%2FlaunchActionType.png?alt=media)

## Conditional

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-65ee98f946c88082e9fbefdf1ec670d4ba831bb6%2FconditionalHeader.png?alt=media)

### Start if

To denote the start of the if condition. All the tests pertaining after this action type will be treated as steps inside the if condition and will be executed only if the condition is passed.

* Required Inputs
  * Data
  * Verifier Type
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-006a8772e01193d5c91dc0d80ac0b725356c84f9%2FstartIf.png?alt=media)

### End if

* To denote the end of the immediate above if condition

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-2e0ca2977f0d2e94fdcbe054fd895086661c8943%2FendIf.png?alt=media)

## Gestures

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-ec02ba2202932a438dd3ed0e3991d833c3d5bfdf%2FgesturesHeader.png?alt=media)

### Tap

Taps an element

* Required Inputs
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-9bd62f188bc0ece841ba0f0db4878145e3af9bac%2Ftap.png?alt=media)

### Tap By Relative Coordinates

Taps an area on the screen with an identifier value and relative coordinates if the actual coordinates are not known.

* Required Inputs
  * Device coordinates: (x, y) form where x and y are a percentage of an element size. x and y are between the number ( 1.00 - 0.00).
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-a502cc4d41749dbeafc7e294f24543e082c5e16c%2FtapByRelativeCordinates.png?alt=media)

### Tap With Coordinates

Uses specified coordinates to tap the screen a selected amount of times.

* Required Inputs
  * Tap Count
  * Coordinates

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-dcb9dde69bfaa36d111e7456df3f4a0b9fef1626%2FtapWithCoordinates.png?alt=media)

### Double Tap

Double taps an element

* Required Inputs
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-430980bb0d591507b311868a0e889eddfc1092cb%2FdoubleTap.png?alt=media)

### Drag and Drop

Clicks and holds one element and drags that source element to a target element.

* Required Inputs
  * Locator type and value of both the source element and target element.
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-1af4a007f2947de23005c1ed90becb047971fdbd%2Fdrag_and_drop.png?alt=media)

### Dynamic Tap

Taps on an element that has its value dynamically generated. Requires the use of the ["Create Variable"](#create-variable) action type to find the dynamic value of that element and store that value so it can be used with the "Dynamic Tap" action type.

* Required Inputs
  * Data from created variable
  * Locator type and value

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-4a62816083a88d46186fb40dac1bcbcdea2c8087%2FdynamicTap.png?alt=media)

### Dynamic Double Tap

Double taps on an element that has its value dynamically generated. Requires the use of the ["Create Variable"](#create-variable) action type to find the dynamic value of that element and store that value so it can be used with the "Dynamic Double Tap" action type

* Required Inputs
  * Data from created variable
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-c7538eb708c56a44e4143457815f6f3f04d6abcc%2FdynamicDoubleTap.png?alt=media)

### Go Back

Goes back a page or takes you back to the home screen

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-8859b73b91f0e8f267438d9c2882098ddc182e95%2FgoBack.png?alt=media)

### Long Press

Performs a long press on an element

* Required Inputs
  * Locator type and value

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-affdc2a9edb33fbc2e5a38cf40251d85af1a23e3%2FlongPress.png?alt=media)

### Open Notifications

Opens the notifications section of the phone

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-38499ac5f06440d3833e09731cfd1acded4ffea9%2FopenNotifications.png?alt=media)

### Press Home

Taps the "home" button on the device.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-a181a0e088415ddd6301cd78f439807291b5ceee%2FpressHome.png?alt=media)

## Swipe Gestures

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-9913fc74b1e2331c024d47898e4ad2ce27ca1599%2FswipeGesturesHeader.png?alt=media)

### Custom Swipe

Selects a number of swipes according to entered coordinates (x1, y1, x2, y2). The first set of coordinates is the starting point of the swipe with the last set being the ending point of the swipe.

* Required inputs
  * Swipe count
  * Swipe coordinates for the starting point

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-ef067a7c5a52bca0cded1a1197a76f4bf568803d%2FcustomSwipe.png?alt=media)

### Swipe Up

Performs Swipe Up operation on the device. The number of swipes can be specified in the data field.

* Required Inputs
  * Number of swipes

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-27d99cb9da8b6cd3372cc6b0a9c447b26917a392%2FswipeUp.png?alt=media)

### Swipe Down

Performs Swipe Down operation on the device. The number of swipes can be specified in the data field.

* Required Inputs
  * Number of swipes

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-67913b3cff0dd973959960fff05f3ae622bcc6ca%2FswipeDown.png?alt=media)

### Swipe Element

Performs a swipe on a specific element.

* Required Inputs
  * Swipe coordinate
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-be66deceb97c5074497e29d81a84dacb036338bc%2FswipeElement.png?alt=media)

### Swipe Left

* Performs a swipe left operation on the device. The number of swipes can be specified in the data field.
* Required Inputs
  * Number of swipes

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-0aedd03ac29c45f9aa7dd38385c91715bdd32dcc%2FswipeLeft.png?alt=media)

### Swipe Right

Performs a swipe right operation on the device. The number of swipes can be specified in the data field. Default data value is 1.

* Required Inputs
  * Number of swipes

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-5414d9d385e0ba32aeb3f85869ab8a45d5df3546%2FswipeRight.png?alt=media)

### Swipe To Element

Performs a swipe on a specific element which is not visible on the screen.

* Required Inputs
  * Number of swipes
  * Swipe direction
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-7f85a7d784553f1bb45ee88e99c471b199cf5df8%2FswipeToElement.png?alt=media)

## Wait Actions

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-097c5c59d2f9dfc1a126c608ae92646cdb79ebce%2FwaitActionsHeader.png?alt=media)

### Wait

Waits for a specified amount of time.

* Required Inputs
  * Wait duration (in seconds)

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-96487ce5da0536cd897019c72b068709ca2b6116%2Fwait.png?alt=media)

### Wait Until

Waits for a specified element to appear.

* Required Inputs
  * Wait duration (in seconds)
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-3df8f96a6c80201415e23c9ff33fa839766805f7%2FwaitUntil.png?alt=media)

### Wait Until Element Contains Text

Waits for an element to contain text

* Required Inputs
  * Expected Value
  * Max wait duration (in seconds)
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-6088fd4ec94ca079b789d4f15d707d539d6f7286%2FwaitUntilElementContainsText.png?alt=media)

### Wait Until Element Has Text

Waits until an element has text

* Required Inputs
  * Expected value
  * Max duration (in seconds)
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-6173cbd0cdff5265b3f57c3629b4de0fc889e6d1%2FwaitUntilElementHasText.png?alt=media)

### Wait Until Element Is Clickable

Waits until an element can be clicked

* Required Inputs
  * Max duration (in seconds)
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-96d79fcbe71c4b426eddc356be1807d7a0164933%2FwaitUntilElementisClickable.png?alt=media)

### Wait Until Element Matches Pattern

Wait until an element matches a given specified pattern.

* Required Inputs
  * Expected value
  * Max duration (in seconds)
  * Locator type and value
* Optional Input
  * Index - Index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-c9779c799950393c4a508167b344bfb5073dcb26%2FwaitUntilElementMatchesPattern.png?alt=media)

## Window Actions

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-5081cb8e89dd7664a1f64eab0efefdaaddd573df%2FwindowsActionsHeader.png?alt=media)

### Landscape

* Sets phone to landscape view.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-a753f15ad5282e98c7e825008e72324f47a8dc4f%2Flandscape.png?alt=media)

### Portrait

* Sets phone to portrait view.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-252147446daac71a3507a91452c5a4b2c8ed60df%2Fportrait.png?alt=media)

### Push File

Adds the selected file to a device's internal storage. This feature is currently only supported for **Android** devices.

* Required Inputs
  * Select File - File that is uploaded from the ‘File Management’ tab in the ‘Setup’ page (only accepts .png, .pdf and .jpg)

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-bd48efaa5521fa39a8cc620fff3ffd337ea13edb%2FpushFile.png?alt=media)

### Install

Installs an application while running the test script. Just provide the URL in the Data field.

* Required Inputs
  * Select App - An app that is uploaded from ‘Application Management’ in ‘Setup’

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-d6788bf7bef2f910d0f7e5a3e31677697d964d68%2Finstall.png?alt=media)

### Uninstall App

Uninstalls the app with the given app package or bundle ID

* Required Inputs
  * Data - App package (Android) or bundleId (iOS)

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-1262963bce7532c5f7310081f5b3a67e5253e9dd%2FuninstallApp.png?alt=media)

### Close App

Closes the app

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-6383963453d8c38031e354db8f84de1084cda281%2FcloseApp.png?alt=media)

### Reset App

Closes the app and opens it up again

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-58e6335d46f200195755817e239f752d31f416f5%2FresetApp.png?alt=media)

### Switch App

Switches between multiple apps.

* Required Inputs
  * Data - appPackage/appActivity (Andorid) or bundleId (iOS)

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-0c52fc02b0eb0bc8531a3345d49375987940b985%2FswitchApp.png?alt=media)

### Switch Context

Switches automation control between web views in a hybrid app.

* Required Input
  * Data - the context to switch the automation control

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-895fc5a66a1a43b9b66ede26f2ea7b61928e9deb%2FswitchContext.png?alt=media)

### Terminate App

Terminates the application

* Required Input
  * Data - the appPackage/appActivity (Andorid) or bundleId (iOS) of the app

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-0a3a7b8d7c91643db7c2b853b2a994107cae5e88%2FterminateApp.png?alt=media)

### Get All Context

* Provides a list of all available views

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-b980dae5bff51ce070b272581e6aff2ab1c4e6f7%2FgetAllContext.png?alt=media)

### Activate App

Activates the specified app

* Required Input
  * Data - the appPackage/appActivity (Andorid) or bundleId (iOS) of the app

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-b9d5e608e6eded105ed316f5f71e2ec6e9c6a11b%2FactivateApp.png?alt=media)

## Hardware Actions

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-e80a91a0a5af900e2c2c14d826f3d97b8367e8fb%2FhardwareActionsHeader.png?alt=media)

### Volume Down

* Lowers the phone’s volume.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-4da16a872e5148e645647c2bf7dce9b0458e2d6d%2FvolumeDown.png?alt=media)

### Volume Up

* Raises the phone's volume.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-22a22b6f70bffb019065b72a8ddd2c22d3f3da75%2FvolumeUp.png?alt=media)

### Change Network Speed

* Change the network speed of the selected mobile device.
* Required Inputs
  * Network Profile - predefined network profiles in a dropdown
* The network profiles included are listed below:

  | Profile Name          | Bandwidth | Loss | Delay  |
  | --------------------- | --------- | ---- | ------ |
  | Wifi                  | 100mbps   | 0%   | 0ms    |
  | 2g-gprs-good          | 50kbps    | 1%   | 500ms  |
  | 2g-gprs-lossy         | 30kbps    | 2%   | 650ms  |
  | edge-good             | 250kbps   | 0%   | 300ms  |
  | 2gedge-lossy          | 150kbps   | 1%   | 500ms  |
  | 3g-utms-good          | 400kbps   | 0%   | 100ms  |
  | 3g-umts-lossy         | 400kbps   | 1%   | 200ms  |
  | 3.5g-hspa-good        | 1800kbps  | 0%   | 100ms  |
  | 3.5g-hspa-lossy       | 900kbps   | 1%   | 190ms  |
  | 4g-lte-good           | 18000kbps | 0%   | 100ms  |
  | 4g-lte-high-latency   | 18000kbps | 0%   | 3000ms |
  | 4g-lte-lossy          | 7000kbps  | 1%   | 120ms  |
  | 4g-lte-advanced-good  | 25000kbps | 0%   | 80ms   |
  | 4g-lte-advanced-lossy | 15000kbps | 1%   | 70ms   |

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-41d79e7f322258cb5a894553a9435bd5c0a4efef%2FchangeNetworkSpeed.png?alt=media)

### Picker Wheel

* Used to set the value for picker wheel selection.
* Required Inputs
  * Data - the data that the selected picker wheel will be set to.
  * Locator type and value

**NOTE**: The Picker Wheel action type is exclusive to iOS. Not available for Android testing.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-cd91ce43a62c7e49adb88ff681d44b1817390175%2FPickerWheelActionType.png?alt=media)

## Input Events

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-881e4f117e20a4a02d491cc1507f8c776e0fca22%2FinputEventsHeader.png?alt=media)

### Clear

* Clears any values entered in a field.
* Required Inputs
  * Locator type and value
* Optional Steps
  * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-7ad5094c3625b03b360f9c9d693bf3b06c102bd9%2Fclear.png?alt=media)

### Press Keys

* Inputs keys from the phone's keyboard. Separate keys to be pressed with a "+"
* Required Input
  * Data for the keyboard action

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-4eba41f9b9e0cc4db1a5ca7141ba605d1d9f1741%2FpressKeys.png?alt=media)

### Send Text

Sends a value to a text field

* Required input
  * Data that the user wants to send as input

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-d115963be6a46c2cd457514f984f12c96dc3aa72%2FsendText.png?alt=media)

### Set

Sets a value to a text field or spinner wheel.

* Required input
  * Data that the user wants to send to an input field
  * Locator type and value
* Optional Steps
  * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-dc2c7f15c6c2ae099b0c69db845d7219866b5c94%2FSet.png?alt=media)

### Set Clipboard Text

Sets the clipboard text to the one specified.

* Required Input
  * Data - the data to be set in the clipboard text

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-63080904f6dc53130ded90c03405d9a79ed4b560%2FSetClipboardText.png?alt=media)

## API

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-3738a07423b63bd3890219bdb7c85e341a323921%2FAPIHeader.png?alt=media)

### Get

Use a GET API call to get a response from an API

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-0ad823878274c2f3a66b9bdef4f4a5733983ad32%2Fget.png?alt=media)

* Required Input
  * Step Description - description of the step
  * URL - url of the api
* Optional
* First click the “Add” button to add a row to the table
  * ***Query Params*** - Key and Value parameters to be added at the end of the URL
  * ***Headers*** - Any additional information to be added to process the API call
  * ***Extract From Response -*** Extract data from the response path and stores it into a local variable
    * Variable Name - Name of the variable
    * Path - path to desired field from the response JSON
      * default is entire response is stored into the variable
      * EX. people\[0].name.height
  * ***Set to Request -*** The “Set to Request” tab is used to modify the request of the API based on previously created variables
    * All of the fields are mandatory expected for “Parameter Location” when the “Parameter Type” is “Request Body”

### Post

Use a POST API call to get a response from an API

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-da91469b4c1ce1f176fb0e3ed462fd75ec2221f5%2Fpost.png?alt=media)

* Required Input
  * Step Description - description of the step
  * URL - url of the api
* Optional
* First click the “Add” button to add a row to the table
  * ***Query Params*** - Key and Value parameters to be added at the end of the URL
  * ***Headers*** - Any additional information to be added to process the API call
  * ***Body***- Any request body required for the API
  * ***Extract From Response -*** Extract data from the response path and stores it into a local variable
    * Variable Name - Name of the variable
    * Path - path to desired field from the response JSON
      * default is entire response is stored into the variable
      * EX. people\[0].name.height
  * ***Set to Request -*** The “Set to Request” tab is used to modify the request of the API based on previously created variables
    * All of the fields are mandatory expected for “Parameter Location” when the “Parameter Type” is “Request Body”

### Put

Use a PUT API call to get a response from an API

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-fa6a5793ef9ac2e7e959dad7733ab484e82615ee%2Fput.png?alt=media)

* Required Input
  * Step Description - description of the step
  * URL - url of the api
* Optional
* First click the “Add” button to add a row to the table
  * ***Query Params*** - Key and Value parameters to be added at the end of the URL
  * ***Headers*** - Any additional information to be added to process the API call
  * ***Body***- Any request body required for the API
  * ***Extract From Response -*** Extract data from the response path and stores it into a local variable
    * Variable Name - Name of the variable
    * Path - path to desired field from the response JSON
      * default is entire response is stored into the variable
      * EX. people\[0].name.height
  * ***Set to Request -*** The “Set to Request” tab is used to modify the request of the API based on previously created variables
    * All of the fields are mandatory expected for “Parameter Location” when the “Parameter Type” is “Request Body”

### Delete

Use a DELETE API call to get a response from an API

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-9eda2a6a111e3b6acab90aca2a8c93b4fade5bbb%2Fdelete.png?alt=media)

* Required Input
  * Step Description - description of the step
  * URL - url of the api
* Optional
* First click the “Add” button to add a row to the table
  * ***Query Params*** - Key and Value parameters to be added at the end of the URL
  * ***Headers*** - Any additional information to be added to process the API call
  * ***Body***- Any request body required for the API
  * ***Extract From Response -*** Extract data from the response path and stores it into a local variable
    * Variable Name - Name of the variable
    * Path - path to desired field from the response JSON
      * default is entire response is stored into the variable
      * EX. people\[0].name.height
  * ***Set to Request -*** The “Set to Request” tab is used to modify the request of the API based on previously created variables
    * All of the fields are mandatory expected for “Parameter Location” when the “Parameter Type” is “Request Body”

## Data Handlers

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-55478482473c2f34c37757aed95a8db16d39c1aa%2FdataHandlersHeader.png?alt=media) ![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-c6d93ce10cb915061c99785a3d0f859e0f8586ec%2FdataHandlersHeader2.png?alt=media)

### Get Element Count

Return how many times an element appeared

* Required Input
  * name for variable

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-e182b488c56322f7c2f6419a513f3e59dccb309d%2FgetElementCount.png?alt=media)

#### Create Variable

Create a variable based on the element and its given property.

* Required Input:
  * Variable Name: create a name for which this variable will be called.
  * Data Column - select the variable to be used
  * Locator type and value
  * Property - property of the element (text, attribute)
* Optional Steps
  * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-4cb53bba4fe3def1bc6c63d435ff002565e22b63%2FcreateVariable.png?alt=media)

### Verify OTP

Used to enter a One Time Password into an element during a running Qyrus test

* Required Inputs:
  * Data Column - a variable name to store the OTP
  * Elements locator type and value.
* Optional Steps
  * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-7e1d088a5d30f34e23b15d76d70c49210c6f90e8%2FverifyOTP.png?alt=media)

Executing a Verify OTP step

1. Run Execute Test on the script and enable the OTP option under “*Advanced Options*”
   1. ![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-807ef46a09dbf498cce57d5d68cc541fa981de5d%2FverifyOTP2.png?alt=media)
2. Under Actions header, click the “Verify OTP”
   1. ![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-ebc479b959201df40c0d531699279100d8335db1%2FverifyOTP3.png?alt=media)
3. Enter in the OTP and press the green checkmark
   1. ![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-f1f10dafcc4e0abd9019aea8241e974755be2acf%2FverifyOTP4.png?alt=media)

### Dynamic Contains

Verify given element contains the text of the selected [local variable](#create-variable)’s text.

* Required Input:
  * Data Column - select the variable to be used
  * Locator type and value
* Optional Steps
  * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-1c873e285faeba9ab42f81e923d25d34300802dd%2FdynamicContains.png?alt=media)

### Dynamic Element Exists

Verify the selected [local variable](#create-variable)’s expected element exists on the actual given element.

* Required Input:
  * Data Column - select the variable to be used
  * Locator type and value

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-4828840c8795efcfac8cb762ef1b38869b3a171a%2FdynamicElementsExists.png?alt=media)

### Dynamic Press Keys

Enters the text saved in the selected [local variable](#create-variable).

NOTE:

* Required Input:
  * Data Column - select the variable to be used
  * Locator type and value

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-4a724d588e6e8f190743537ea7a8ad61a0e894c0%2FDynamicPressKeys.png?alt=media)

### Dynamic Set

Input the selected [local variable](#create-variable) data into an element.

* Required Input:
  * Data Column - select the variable to be used
  * Locator type and value
* Optional Steps
  * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-735c2873a66e7452d7c862c8a7d28f3bc0ed5b7b%2FdynamicSet.png?alt=media)

### Dynamic Verify

Verify the element’s value is the same as the text value in the selected [local variable](#create-variable).

* Required Input:
  * Data Column - select the variable to be used
  * Locator type and value
* Optional Steps
  * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-8b59b1732d8c65a1230515370f88696461d1aadf%2FdynamicVerify.png?alt=media)

### Dynamic Verify Is Not

Verify the element’s value is not the same as the text value in the selected [local variable](#create-variable).

* Required Input:
  * Data Column - select the variable to be used
  * Locator type and value
* Optional Steps
  * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-e5ff507673a02d39d777e8834497599d4bf9d314%2FdynamicVerifyIsNot.png?alt=media)

### Dynamic Verify Attribute

Verify the element's attributes in the data field from the given attribute in the selected [local variable](#create-variable).

* Required Input:
  * Data Column - select the variable to be used
  * Locator type and value
* Optional Steps
  * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-7e67ea068b3678636850fe003f3714168bf79acc%2FDynamicVerifyAttribute.png?alt=media)

### Get Clipboard Text

Get the data from the device’s clipboard

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-41a4e217092f6ac0c649d494c58504c6d4daf95a%2FgetClipboardText.png?alt=media)

### Set Location

Sets the device's location by latitude, longitude and altitude. Setting a wrong altitude value can yield improper data on an otherwise correct location.

* Required Inputs:
  * Latitude/Longitude/Altitude
    * Example “*38.25/-85.26/120*”

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-6f8c292c951a715f0c20d6ab30fb29e93632cf66%2FsetLocation.png?alt=media)

### Execute Test Case

Execute Test Case enables user to invoke/call another script within a script. Execute Test Case enables re-usability of test scripts within the scripts.

* *Note:- Execute Test Case can only invoke scripts that do not have **Execute Test Case step** within them.*
  * Execute Test Case used in the following ways:\
    Required Inputs:
    * Script Name- User has to select the script which has to be invoked.\
      Optional Inputs:
    * Data-
    * After clicking on Parameterization icon **Data Column** field is used to parameterize the execute test step
    * The **Data** field is used to run the parameterized scripts of the invoked script.
    * Execute Test case step cannot be made as optional step.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-99b6621032a183262767df1c63548a54a5c3d999%2FexecuteTestCase.png?alt=media)

* On click on “**Select Script**” button, all the Modules will be displayed under the particular project

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-861c94a9dcdc0f1aa292adc47d88b4b808465a3b%2FexecuteTestCase2.png?alt=media)

* On click on particular Suite, user is allowed to select the script and invoke those scripts.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-94d24fea40b6c531c3ecf7372d35a5a80ff97100%2FexecuteTestCase3.png?alt=media)

**Parameterization for ExecuteTestCase with various scenarios:**

1. If the *Test 1* has parameterized step with 2 rows of data , User can use *Test 1* in *Test 2* and in the Data field user can specify the Excel TestCase serial name(**ex: Tc\_1**),So for this particular Test data execution will happen.
2. If the *Test 1* has parameterized step with 2 rows of data , User can use *Test 1* in Test 2 and in the Data field user can specify (**ex: \***),So for this it will consider both data and execution will happen for 2 iteration then it will proceed to next step.
3. User can use multiple *ExecuteTestCase* in single test but the test which user invokes should not contain *ExecuteTestCase* step.
4. User can parameterize the ***ExecuteTestCase*** step :-(considering Test 1 and Test 2)\
   Where user can call the test data in the below format.\
   In *Test 2*(Paramaterized data):-

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-3c87000897c6f72ca77a57e284d20b0e917fb511%2FexecuteTestCase4.png?alt=media)

If the user add Case3 and give Tc\_3 it will not execute since Tc\_3 data is not present in T\_est 1\_

***Note:-** Parameterization of ExecuteTestCase will allow the user to include the steps which is apart from ExecuteTestCase step in single iteration*.

## Execute Java Code

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-3529a9f8d93a4ba0b29b172ad1aaa4312877eaf1%2FexecuteJava.png?alt=media)

* Allows user to Execute a java code at runtime and also allows the user to determine whether the step has passed or failed.
  * Required inputs:
    * Code **:** user can paste the java code(JAVA Class) to compile and execute
    * Class Name : Name of the class that the user has entered in the code text area, that is to be compiled and executed
    * Method Name : Name of the method that has to be executed within the java class entered by the user, the method has to take in one parameter of the type RemoteWebDriver.
    * The Method to be executed has to be a static method
  * Optional inputs: None
  * Usage:  The user can use the driver object to execute any selenium operations, the user can also mark the status of the script as Pass/Fail in the following way below:
  * **To Use The Driver Object :** the method to be executed has to be a static method and should have a parameter of type **RemoteWebDriver**. The parameter can then be consumed by the method as a Selenium Driver Object, the session that is handed over to your method is the same session being used by your Test Script.
  * ***Example*****:** In the below example consider the function to invoke is myFunction in your Java class, the code would look like something shown below.
    * ```java
        public static void myFunction(RemoteWebDriver driver) {
        		System.out.println(driver.getCapabilities().asMap());
        		WebElement element = driver.findElementById("someElementID");
        		System.out.println("Code succesfull");
        	}
      ```
  * **To Set The Status Of Your Test:** The user has the freedom to manipulate the status of this step based on any condition they feel is satisfied/unsatisfied . To do this the user has to include a method in his class and invoke that method anywhere in his code to set the Status to Pass/Fail, if not included the default status is set to Pass.***Example*****:** In the below example is the method that is to be added to the Class and invoked.
  * ```java
      public static void setStatus(String status) {
      		if (status != null)
      			try {
      				Path path = Files.write(Paths.get("status.txt"), status.getBytes());
      			} catch (Exception e) {
      				e.printStackTrace();
      			}
      	}
    ```

#### &#x20;A Complete Example is Shown Below:

```java
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.openqa.selenium.remote.RemoteWebDriver;
public class MyClass {
	public static RemoteWebDriver driver=null;
	public static void myFunction(RemoteWebDriver d) {
		driver = d; //to use our runtime driver
		System.out.println(driver.getCapabilities().asMap());
		System.out.println("Code succesfull");
		setStatus("Fail"); //To set Fail Status
		setStatus("Pass"); //To set Pass Status
	}
	public static void setStatus(String status) {
		if (status != null)
			try {
				Path path = Files.write(Paths.get("status.txt"), status.getBytes());
			} catch (Exception e) {
				e.printStackTrace();
			}
	}
}
```

### Execute Query

* Executes a given query and saves the response to a variable for use. Can only be used if the database is configured in the “*Setup - Database Configuration*” page
  * Required inputs:
    * Data Column - Variable name to store value for reuse
    * Query – SQL query statement
    * Key Extractor - Key whose value needs to be extracted

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-fdb6b6142ded1e4288553dae9c3dda0c6717261c%2FexecuteQuery.png?alt=media)

### Extract Words

* Specify an index range in the data field. Action type then extracts the characters from the given data in the selected [local variable](#create-variable).
  * Example: 123,123,123 is the data in the local variable
    * Extract words: “0|6” returns “123,12”
  * Required Input
    * Data - Value which needs to be extracted from the stored variable’s text
    * Data Column - Variable name that contains value of the text

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-c9e6683e1edfcbf61b18f5daa28cce597c534969%2FextractWords.png?alt=media)

### Remove Words

* Remove the text or character from the given data in the selected [local variable](#createVariable)
  * Example: 123,123,123 is the data in the local variable
    * Remove Words: “,” returns “123123123”
  * Required Input:
    * Data - character(s) that needs to be removed from the variable
    * Data Column - select the variable to be changed.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-b8e1ae8953a259c449c72119ff6105b056f777b4%2FremoveWords.png?alt=media)

### Modify Dynamic Value

* Modifies the selected created [local variable](#createVariable) with the data in the data field
  * Required Input
    * Data - text to overwrite existing text in the local variable
    * Data Column - select which variable data needs to be changed

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-759dad56203d00dee9bff1e17dbab52ee5d4aefa%2FmodifyDynamicValue.png?alt=media)

## Verifier

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-7ee8cb33490cb054b70e54ad7e13ae63bf864bed%2FverifiersHeaders.png?alt=media)

### Contains

* Verifies if the element contains the data from data field
  * Required Inputs
    * Element’s locator type and value
    * Data - value of the attribute to be checked
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-7dabb30b37880255703deffea6a6a55b21522c31%2Fcontains.png?alt=media)

### Is Visible

* Verifies if the element is visible
  * Required Inputs
    * Element’s locator type and value
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-b621b2a5cc015652af3cc87289ea1c41fb279f5d%2FisVisible.png?alt=media)

### Is Blank

* Verifies that the element is blank
  * Required Inputs
    * Element’s locator type and value
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-530d866d2befd754c0de67e6a6dab2790302f467%2FisBlank.png?alt=media)

### Verify Attribute Is Not

* Verifies the attribute (name, src, width, title, value, etc.) of an element is not the value specified in the data field.
  * Required Inputs
    * Element’s locator type and value
    * Data - value of the attribute to be checked
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-cd06b382d15864871531653d84f71cd41913df67%2FverifyAttributeIsNot.png?alt=media)

### Verify Attribute

* Verifies the attribute (name, src, width, title, value, etc.) of an element is the value specified in the data field.
  * Required Inputs
    * Element’s locator type and value
    * Data - value of the attribute to be checked
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-8c56885b6fb52fc30c573b544055e24da2c7b874%2FverifyAttribute.png?alt=media)

### Verify Text

* Verifies given element’s text matches the text from the data field.
  * Required Inputs
    * Element’s locator type and value
    * Data - expected text to be verified by the actual element text
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-41ff1f404c62a78df37d86dc9fc0926401dfc4a4%2FverifyText.png?alt=media)

### Verify Clipboard Text

* Verifies that the data is in the clipboard of the device
  * Required Inputs
    * Data - expected text to be verified from the actual clipboard text

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-2d2cfe2b873a2178a8493f9da966210e8253f326%2FverifyClipboardText.png?alt=media)

### Verify Push Notification Text

* Verifies that the information in the notification is the specified text.
  * Required Inputs
    * Data - expected text to be verified from the actual push notification text

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-e4e9bdbfa7b6b406c2e5bf0f155736cc1f75ff6a%2FverifyPushNotificationText.png?alt=media)

### Verify Greater Than

* Verifies if the the value of the given locator (Id value) is greater than the number in the data field
  * Required Inputs
    * Element’s locator type and value
    * Data - number to be compared with the value found by the locator
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-2253f9a4b3deba2b8efd1f570f2a5e78fd60c18d%2FverifyGreaterThan.png?alt=media)

### Verify Less Than

* Verifies if the the value of the given locator (Id value) is less than the number in the data field
  * Required Inputs
    * Element’s locator type and value
    * Data - number to be compared with the value found by the locator
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-e1dd17eaa21fd50420b9944c80f8dbf74335f5ca%2FverifyLessThan.png?alt=media)

### Verify Not Null

* Verifies if the the value of the given locator (Id value) is not null
  * Required Inputs
    * Element’s locator type and value
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-3470c583cdf79cde54059bad4cf9a0860affa762%2FverifyNotNull.png?alt=media)

### Verify Regular Expression

* Verifies the regular expression pattern provided in the field value of "*Verify Regular Expression*" action type for the specified field.
  * Required Inputs
    * Element’s locator type and value
    * Data - input field for the wanted regular expression
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-4fac987dd6da011ae98f5a3f38bce60686b23e0d%2FverifyRegularExpression.png?alt=media)

## Element Verifiers

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-a2da849484096af9ca860b8724506cf2aa7a1ec4%2FElementVerifiersHeader.png?alt=media)

### Verify Element Count

* Verifies the count of the given element
  * Required Inputs
    * Element’s locator type and value
    * Data - counts the amount of times an Element shows up
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-4e36457f231eeabd52417f1eebd86985da54703e%2FverifyElementCount.png?alt=media)

### Element Position Is

* Verifies if an element is in the {x , y} coordinates specified by the value in the data field
  * Required Inputs
    * Element’s locator type and value
    * Data - the { x , y } coordinate of the position to be checked
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-0008d052d84d9e346e96bbc3e77a1f0ff2b084f2%2FelementPositionIs.png?alt=media)

### Element Position Is Not

* Verifies if an element is not in the {x , y} coordinates specified by the value in the data field
  * Required Inputs
    * Element’s locator type and value
    * Data - the { x , y } coordinate of the position to be checked
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-f3aa354e40a2ef44d3e031f15979493d98b047d2%2FElementPositionIsNot.png?alt=media)

### Element Not Exists

* Verifies an element does not exist
  * Required Inputs
    * Element’s locator type and value
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-40ac445d1b1478e81b14620198d9ad33746d2d41%2FElementNotExists.png?alt=media)

### Element Exists

* Verifies if the elements exists
  * Required Inputs
    * Element’s locator type and value
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-359222d134e24b29bc575085891fa9e18bc1a17e%2FElementExists.png?alt=media)

### Element Enabled

* Verifies if the element is disabled/has enabled tag.
  * Required Inputs
    * Element’s locator type and value
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-6ce4e56fc39bd2e9687e4966f3bed56f7123d767%2FElementEnabled.png?alt=media)

### Element Disabled

* Verifies if the element is disabled/has disabled tag.
  * Required Inputs
    * Element’s locator type and value
  * Optional Steps
    * Index - index value of the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-ab260ab80ec7de31ce1b319f42a8afa42df57479%2FElementDisabled.png?alt=media)

## AI (Beta)

**NOTE for AI actions types, select the AI action type first, push it to the script, and then upload an image**

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-79bca730155d935aece5d1d1c72268def801a706%2FAIHeader.png?alt=media)

### Click By Image

* Clicks on uploaded image on the device’s screen

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-27b0e6c90e3fe1afdc33d14030f5f36cadcfc06b%2FclickByImage.png?alt=media)

### Set By Image

* Finds the uploaded image field on the device’s screen and sets the given user data in that field.
  * Required Inputs
    * Data - text data to be entered into the element

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-b30903b8bd3b11c79710a7a3da09d8fe0b539eb0%2FsetByImage.png?alt=media)

### Verify By Image

* Verifies that the uploaded image appears on the device’s screen.

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-39c95ab6f9c23cd6942eabb10b35b9e90e2b3000%2FverifyByImage.png?alt=media)

### Visual Testing Verify Screen

* Set up Custom Ignore Regions for [Visual Testing.](https://docs.qyrus.com/mobile-testing/advanced-features/visual-regression-testing)
  * Required Inputs
    * Custom Ignore Region

![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-49329ebcce05f374cb7411f44e1a87f4c016dc0e%2FvisualTestingVerifyScreen.png?alt=media)

**How to Draw Custom Ignore Region**

1.) Enable the Inspect Mode and Draw Custom Ignore Regions![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-cd32b23c0b58f77cd1a81ae70b4d01d6f422f1cf%2Fverify-screen-toggles.png?alt=media)

2.) Draw a box by clicking and dragging over the ignore Region on the device screen![](https://3407579843-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHgmf0zEqt232nyShGOTi%2Fuploads%2Fgit-blob-ec244597ce2cef7f671cd3a5e10c8c1068d1959d%2Fverify-screen-boxes.png?alt=media)**NOTE**

* Multiple boxes can be drawn
* Max of 5 Regions
* Regions can be input manually by clicking "Add another region" and inputting the (x,y) coordinates
