> For the complete documentation index, see [llms.txt](https://docs.qyrus.com/desktop-testing/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.qyrus.com/desktop-testing/user-actions/window-actions.md).

# Windows User Actions

Windows user actions are functional commands that empower users to interact with and manipulate desktop applications effectively. Qyrus offers a diverse range of 115 distinct action types designed for Desktop Testing, systematically categorized according to their specific nature. Each user action is accompanied by both mandatory and optional input parameters, with **mandatory inputs indicated by an asterisk (\*)**.

## Table of Contents

* [Application Actions](#application-actions)
* [Mouse Events](#mouse-events)
* [Keyboard Events](#keyboard-events)
* [Verifiers](#verifiers)
* [Functions](#functions)
* [Conditional](#conditional)
* [Data Handlers](#data-handlers)
* [Delay](#delay)
* [AI](#ai-actions)
* [Window Actions](#window-actions)

## Application Actions :

<details>

<summary>1. Start</summary>

Starts the specified .exe file and attaches the execution to the specified window name.

**Inputs:**

* Application Path\* – Path to the .exe file.
* Application Title\* – Window name of the started application.
* Start Delay – Wait time for the application to start.

<img src="/files/r44ChECVgrGdMrQ7LI24" alt="Start" data-size="original">

</details>

<details>

<summary>2. Launch</summary>

Launches the specified .exe file.

**Inputs:**

* Application EXE Path\* – Path to the .exe file.

<img src="/files/MS8VELdXWIJKpbZHTzP0" alt="Launch" data-size="original">

</details>

<details>

<summary>3. Kill EXE</summary>

Terminates the specified .exe file.

**Inputs:**

* EXE Path\* – Path to the .exe file.

<img src="/files/nCWwp4e07kCnHRnA3mm5" alt="Kill EXE" data-size="original">

</details>

## Mouse Events:

<details>

<summary>1. Click</summary>

This action performs a single click on the specified element.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Delay After
* Index of element
* Child Window Title
* New Window Title

<img src="/files/TkacNK5Ik2ooiWKpDBsJ" alt="Click" data-size="original">

</details>

<details>

<summary>2. Click By Coordinates</summary>

This action performs a single click at the specified coordinates (x,y).

**Inputs:**

* Coordinates\* - (x,y)
* Delay After

<img src="/files/ON0xUC5FzuysVa3b4Icq" alt="Click By Coordinates" data-size="original">

</details>

<details>

<summary>3. Click And Hold By Coordinates</summary>

This action performs a click and hold operation at the specified coordinates (x, y).

**Inputs:**

* Coordinates\* - (x,y)
* Delay After

  Disclaimer: To release the hold, use Release Click By Coordinate/Image actions. Release of hold can also happen with Click By Coordinates, Set by Coordinate and Click by Image action types, but this is not recommended.

<img src="/files/dY84XfHBqgOR1aExQ25I" alt="Click And Hold By Coordinates" data-size="original">

</details>

<details>

<summary>4. Double Click</summary>

This action performs a double-click on the specified element.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Delay After
* Index of element
* Child Window Title
* New Window Title

<img src="/files/3GoW1zAYR1PZ126nSSp9" alt="Double Click" data-size="original">

</details>

<details>

<summary>5. Double Click By Coordinates</summary>

This action performs a double-click at the specified coordinates (x,y).

**Inputs:**

* Coordinates\* - (x,y)
* Delay After

<img src="/files/4VpJ6uPQCBCTr91qKfgU" alt="Double Click By Coordinates" data-size="original">

</details>

<details>

<summary>6. Right Click</summary>

This action performs a right-click on the specified element.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Delay After
* Index of element
* Child Window Title
* New Window Title

<img src="/files/7tObL1nohifNcmfTGXOm" alt="Right Click" data-size="original">

</details>

<details>

<summary>7. Right Click By Coordinates</summary>

This action performs a right-click at the specified coordinates (x,y).

**Inputs:**

* Coordinates\* - (x,y)
* Delay After

<img src="/files/79Jl6P8WOtPKHD7GbBJG" alt="Right Click By Coordinates" data-size="original">

</details>

<details>

<summary>8. Release Click By Coordinates</summary>

This action is a subsequent action of Click and Hold By Coordinates/Image, which helps in releasing the long hold. In this action, 1. If the user wants to drag and drop an object from one element to another, it can be done using Click And Hold By Coordinates/Image actions followed by Release Click By Coordinates/Image actions. 2. If the user wants to perform a click operation on a menu, which subsequently performs another operation, Click And Hold By Coordinates/Image actions can be used.

**Inputs:**

* Coordinates\* - (x,y) : The specific x and y coordinates where the release action will be performed.
* Delay After

**Note 1 :** If the user uses Click By Coordinates/Image, and Set By Coordinate after Click And Hold By Coordinates/Image action, it will release the hold.

**Note 2 :** The user is recommended not to use any other actions between Click And Hold By Coordinates/Image and Release Click By Coordinates/Image actions as this may lead to inappropriate results.

<img src="/files/ilxVIGoQ5mqLqPEU3N4E" alt="Release Click By Coordinates" data-size="original">

</details>

<details>

<summary>9. Click And Hold</summary>

This action performs a click and hold action on the specified element.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Delay After
* Index of element
* Child Window Title
* New Window Title

<img src="/files/65pEnZqqEUMIDEIW5zMd" alt="Click And Hold" data-size="original">

</details>

<details>

<summary>10.Hover</summary>

This action performs a hover action over the specified element.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Delay After
* Index of element
* Child Window Title
* New Window Title

<img src="/files/YVGOZdVubYyWjV7gvRro" alt="Hover" data-size="original">

</details>

<details>

<summary>11. Hover By Coordinates</summary>

This action performs a hover action at the specified coordinates (x,y).

**Inputs:**

* Coordinates\* - (x,y)
* Delay After

<img src="/files/yfklf4IHg11v0lcu80Ep" alt="Hover By Coordinates" data-size="original">

</details>

<details>

<summary>12. Highlight</summary>

This action highlights the specified element.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Delay After
* Index of element
* Child Window Title
* New Window Title

<img src="/files/wd2y6d8jr13vRqfPOkSF" alt="Highlight" data-size="original">

</details>

<details>

<summary>13. Scroll Up</summary>

This action performs a scroll up action with the specified scroll wheel count at the provided coordinates (x,y).

**Inputs:**

* Coordinates\* - (x,y)
* Wheel Distance\*
* Delay After

<img src="/files/iwFJeruvvRmTXKWn55Yt" alt="Scroll Up" data-size="original">

</details>

<details>

<summary>14. Scroll Down</summary>

This action performs a scroll down action with the specified scroll wheel count at the provided coordinates (x,y).

**Inputs:**

* Coordinates\* - (x,y)
* Wheel Distance\*
* Delay After

<img src="/files/m1r1IfQBaSSALo2k7esJ" alt="Scroll Down" data-size="original">

</details>

<details>

<summary>15. Scroll Left</summary>

This action performs a scroll left action with the specified scroll wheel count at the provided coordinates (x,y).

**Inputs:**

* Coordinates\* - (x,y)
* Wheel Distance\*
* Delay After

<img src="/files/ZjSJRxnXby8aIAWmAJTE" alt="Scroll Left" data-size="original">

</details>

<details>

<summary>16. Scroll Right</summary>

This action performs a scroll right action with the specified scroll wheel count at the provided coordinates (x,y).

**Inputs:**

* Coordinates\* - (x,y)
* Wheel Distance\*
* Delay After

<img src="/files/93gH0OfM7WIuXddQ8vm4" alt="Scroll Right" data-size="original">

</details>

## Keyboard Events:

<details>

<summary>1. Set</summary>

This action sets a value for a specified control, such as an edit (text box) element. It assigns the data value provided to the specified element.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Data Value\*
* Delay After
* Index of element
* Child Window Title
* New Window Title

<img src="/files/5hvjor2Yx3gQZUGaEsvd" alt="Set" data-size="original">

</details>

<details>

<summary>2. Set By Coordinates</summary>

This action sets a value for a control, such as an edit (text box) element, that is located at the specified coordinates (x,y). It assigns the data value provided to the element at the specified coordinates.

**Inputs:**

* Coordinates\* - (x,y)
* Data Value\*
* Delay After

<img src="/files/QiyVgXbpyDnBaiPKb1U2" alt="Set By Coordinates" data-size="original">

</details>

<details>

<summary>3. SendKeys</summary>

This action performs a Send Keys action.

**Inputs:**

* Keys\*

<img src="/files/V5b97eByJn39DUsLtAAl" alt="SendKeys" data-size="original">

</details>

<details>

<summary>4. Clear</summary>

This action clears the content of the specified element.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Index of element
* Child Window Title
* New Window Title

<img src="/files/7WbgIhOqfKwFk9pHDWg9" alt="Clear" data-size="original">

</details>

## Verifiers:

<details>

<summary>1. Verify Text</summary>

This action compares the text of the specified element with the text provided in the data field.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Data Value\*
* Index of element
* Child Window Title
* New Window Title

<img src="/files/yAqcfhE3JSmKkSJ8GHfU" alt="Verify Text" data-size="original">

</details>

<details>

<summary>2. Verify Input Text By Coordinates</summary>

This action matches the text of an element located at the specified coordinates (x,y) with the text specified in the Coordinates Value.

**Inputs:**

* Coordinates\* - (x,y)
* Data Value\*
* Delay After

<img src="/files/zyxAHDnq0awBvdu1Jf9t" alt="Verify Input Text By Coordinates" data-size="original">

</details>

<details>

<summary>3. Verify Input Contains By Coordinates</summary>

This action verifies whether the text of the element at the specified coordinates (x,y) contains the text specified in the Coordinates Value.

**Inputs:**

* Coordinates\* - (x,y)
* Data Value\*
* Delay After

<img src="/files/MtcUh2l0OpSrxJm593ii" alt="Verify Input Contains By Coordinates" data-size="original">

</details>

<details>

<summary>4. Contains</summary>

This action checks whether the specified element contains the text provided in the data field.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Data Value\*
* Index of element
* Child Window Title
* New Window Title

<img src="/files/rSfGhsYIBAc0vgiSOpWt" alt="Contains" data-size="original">

</details>

<details>

<summary>5. Is Blank</summary>

This action verifies whether the text of the specified element is blank or not.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Data Value\*
* Index of element
* Child Window Title
* New Window Title

<img src="/files/EcNmsZHL1Zi2eP7do8qm" alt="Is Blank" data-size="original">

</details>

<details>

<summary>6. Verify Greater Than</summary>

This action checks whether the specified element's value is greater than provided in the data field. There are two value type supported here Date and Number. Format is applicable for Date and is optional. Eg. dd/mm/yyyy hh:mm:ss

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Data Value\*
* Value Type\*
* Index of element
* Format For Locator’s Value
* Format For Data

<img src="/files/dgzVCHjilQVbRx4ZBkhw" alt="VerifyGreaterThan" data-size="original">

</details>

<details>

<summary>7. Verify Less Than</summary>

This action checks whether the specified element's value is less than provided in the data field. There are two value type supported here Date and Number. Format is applicable for Date and is optional. Eg. dd/mm/yyyy hh:mm:ss

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Data Value\*
* Value Type\*
* Index of element
* Format For Locator’s Value
* Format For Data

<img src="/files/dlVWl0evi5nK27p6fLIS" alt="VerifyLessThan" data-size="original">

</details>

<details>

<summary>8. Verify Not Null</summary>

This action checks whether the specified element's value is not null.

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Index of element

<img src="/files/eE47C97XqHgMOmSpXSVC" alt="VerifyNotNull" data-size="original">

</details>

## Functions:

<details>

<summary>1.Execute Test Case</summary>

This action allows users to invoke entire test script as test step within another script, promoting reusability.

**Inputs:**

* Script Name\*
* Data

**Note:** If this user action is parameterized, the 'Data' field will be changed into 'Data Column', which is a mandatory field.

You can find extensive information on how to use this user action effectively in the complete guide provided at this [***link***](/desktop-testing/advanced-feature/execute-test-case.md) .

<img src="/files/zm5Gu6cRTn60sjP7SpG2" alt="Execute Test Case" data-size="original">

</details>

## Conditional:

<details>

<summary>1. Start If</summary>

This action marks the beginning of an if condition block. Any subsequent actions related to this action type will be considered as steps within the if condition block and will only be executed if the specified condition is satisfied.

**Note:** The conditions within the nested structure depend on the "Pass" or "Fail" outcomes of the verifier contained within it.

*Exclusively supports verifiers.*

<img src="/files/X9oFj3bel8S7gwAP52lq" alt="Start If Action" data-size="original"><img src="/files/ANg8qRMNLMYZuBI2FWTp" alt="Start If Action" data-size="original"><img src="/files/480GHq4NXtAICP33U34P" alt="Start If Action" data-size="original"><img src="/files/epWv8o2M4N4tJppfmJMY" alt="Start If Action" data-size="original"><img src="/files/SD7N8kH7oyFdxdIaaRsB" alt="Start If Action" data-size="original"><img src="/files/Mw7kCz6ASQTxjyjRXR9b" alt="Start If Action" data-size="original"><img src="/files/H8vJRUA3NhI2MR3lXW0G" alt="Start If Action" data-size="original"><img src="/files/mcgIVeTcCzWvc2YKh6PO" alt="Start If Action" data-size="original"><img src="/files/DP5vQxb5C7zGnTl7exUe" alt="Start If Action" data-size="original"><img src="/files/1UnRLwzd3BQbW5vu9iRe" alt="Start If Action" data-size="original"><img src="/files/s70MDx9SWVgCL1tnVvS9" alt="Start If Action" data-size="original">

</details>

<details>

<summary>2. End If</summary>

This action signifies the end of the immediately preceding if condition block.

<img src="/files/GMLuyC5DEyuy70TppbM2" alt="End If" data-size="original">

**Nested If Conditions**

Nested conditional tests can be accomplished by enclosing a series of "Start If - End If" steps within another set of "Start If - End If" conditional steps. This creates a hierarchical structure that allows for layered conditional evaluations.

</details>

## Data Handlers:

<details>

<summary>1. Create Variable</summary>

This action captures the text from the specified element and stores it in a variable with the specified name. The variable (data column) can then be used in subsequent data handler action types.

**Inputs:**

* Variable name\*
* Locator Type and its Value\*
* Control Type\*
* Index of the element
* New Window Title
* Child Window Title

<img src="/files/OMK4llLfYT0cZbqx8GJC" alt="Create Variable" data-size="original">

</details>

<details>

<summary>2. Dynamic Verify Text</summary>

In this action, the dynamically captured text from the 'Create Variable' user action needs to be selected in the 'Select Variable' field. The text value associated with the variable will be matched with the text of the specified element.

**Inputs:**

* Select Variable\*
* Locator Type and its Value\*
* Control Type\*
* Index of the element
* New Window Title
* Child Window Title

<img src="/files/bVMNU4dYKe6dogFooDLQ" alt="Dynamic Verify Text" data-size="original">

</details>

<details>

<summary>3. Dynamic Contains</summary>

Similar to the 'Dynamic Verify Text' action, this action also uses the dynamically captured text from the 'Create Variable' user action in the 'Select Variable' field. It checks whether the text of the specified element contains the text value associated with the variable.

**Inputs:**

* Select Variable\*
* Locator Type and its Value\*
* Control Type\*
* Index of the element
* New Window Title
* Child Window Title

<img src="/files/A4JFnuCJVA5oIrQbd0Nm" alt="Dynamic Contains" data-size="original">

</details>

<details>

<summary>4. Dynamic Set</summary>

This action dynamically sets the value of a specified element using the text captured from the 'Create Variable' user action. The text value associated with the data column will be set to the specified element.

**Inputs:**

* Select Variable\*
* Locator Type and its Value\*
* Control Type\*
* Index of the element
* New Window Title
* Child Window Title

<img src="/files/xv5nMDo9g2nB6TU4J0m5" alt="Dynamic Set" data-size="original">

</details>

<details>

<summary>5. Extract Words</summary>

The 'Extract Words' action retrieves characters from the variable value of the 'Select Variable' field, using designated start and end indices provided within the data. It allows you to extract specific portions of text from a variable.

**Example:**

* Variable(contains) has the text value "Hey How Are You?"
* Data: 0|7
* Updated value of Variable(contains): "Hey How" (Starting from the 0th index till the 6th index, excluding the 7th index)

**Inputs:**

* Data\*
* Select Variable\*

<img src="/files/o0CFWyDtIDI5vESAajK8" alt="Extract Words" data-size="original">

</details>

<details>

<summary>6. Remove Words</summary>

The 'Remove Words' action removes the word specified in the variable value of the 'Select Variable' field from the text within the 'Data' field. It allows you to selectively remove words or phrases from a variable.

**Example:**

* Variable(contains) has the text value "Test Test1 Test2"
* Data: "Test Test1"
* Updated value of Variable(contains): "Test2" (Removed words provided in the Data value)

**Inputs:**

* Data\*
* Select Variable\*

<img src="/files/RgMsRKOUPSyzCUlkZjeW" alt="Remove Words" data-size="original">

</details>

<details>

<summary>7. Modify Dynamic Value</summary>

The 'Modify Dynamic Value' action allows you to dynamically change the value of a variable by concatenating it with another value. The dynamically captured text from the 'Create Variable' user action needs to be selected in 'Select Variable.' The updated value can be specified in the 'Data' field.

**Example:**

* Variable(contains) has the text value "Hello"
* Data: Var1 + " Append Word"
* Updated value of Variable(contains): "Hello Append Word"

**Inputs:**

* Data\*
* Select Variable\*

<img src="/files/AzkVEeySu44nMhxlQnYt" alt="Modify Dynamic Value" data-size="original">

</details>

<details>

<summary>8. Dynamic Verify Greater Than</summary>

This action checks whether the specified element's value is greater than value in variable. This action uses the dynamically captured text from the 'Create Variable' user action in the 'Select Variable' field. There are two value type supported here Date and Number. Format is applicable for Date and is optional. Eg. dd/mm/yyyy hh:mm:ss

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Variable Name\*
* Value Type\*
* Index of element
* Format For Locator’s Value
* Format For Variable’s Value

<img src="/files/ESgJxvRinUBKdYDgHVON" alt="DynamicVerifyGreaterThan" data-size="original">

</details>

<details>

<summary>9. Dynamic Verify Less Than</summary>

This action checks whether the specified element's value is less than value in variable. This action uses the dynamically captured text from the 'Create Variable' user action in the 'Select Variable' field. There are two value type supported here Date and Number. Format is applicable for Date and is optional. Eg. dd/mm/yyyy hh:mm:ss

**Inputs:**

* Locator Type and its Value\*
* Control Type\*
* Variable Name\*
* Value Type\*
* Index of element
* Format For Locator’s Value
* Format For Variable’s Value

<img src="/files/AdU7e40aRYEIzzhogZYb" alt="DynamicVerifyLessThan" data-size="original">

</details>

<details>

<summary>10. Execute Query</summary>

Executes a database query and stores the resulting response in a designated variable. Applicable when a database connection is pre-configured.

**Inputs:**

* **Query**\* - SQL query to be executed against the configured database.
* **Data Column**\* - Name of the variable to store query results.
* **Key Extractor**\* - Specific column to be extracted from the query results.

**Prerequisites:**

* Database configuration must be set up before using this user action.

**Non-Parameterization Flow:**

* Create database configuration in project setup.
* Select 'Execute Query' user action.
* Enter SQL query in Query field.
* Specify Data Column for storing results.
* Define Key Extractor for extracting specific column data.
* Select database configuration before test run.

**Example:**

```sql
SELECT * FROM newdata WHERE id = 2
```

<img src="/files/PesYT8PSLHdZ5CuykIs0" alt="Execute Query - Non Paramerized" data-size="original">

**Parameterization Flow:**

1. **Initial Configuration**
   * When parameterization is activated, the **Query** field is hidden.
   * Two fields remain visible:
     * **Data Column** (to store results)
     * **Key Extractor** (to extract specific column data).

<img src="/files/9F1FQlDKTjL1WKS4ys9y" alt="Execute Query - Paramerized" data-size="original">

2. **Parameter File Setup**
   * Navigate to the **Parameter File**.
   * Click **Create Table** to generate a TDM test table.
3. **Test Case Creation**
   * The TDM table includes a default column named **Test Case** (e.g., TC1, TC2).
   * Data Column field added as second column (e.g., **Variable**) to store SQL queries.
4. **Query Parameterization**
   * Populate the **Variable** column with your SQL queries.

*Example table structure:*

<img src="/files/qYmNHgylP2ZgXP6iKZhd" alt="Execute Query - Test Data Table" data-size="original">

Avoid mixing queries that select different columns on TDM table: If TC1 extracts `firstname` and TC2 extracts `lastname`, execution may terminate unexpectedly.

Always specify single column in the Key Extractor field.

Integration: Can be combined with "Dynamic Set" to reuse retrieved data in test scenarios.

</details>

## Delay:

<details>

<summary>1. Wait</summary>

The 'Wait' action pauses the execution for a specific amount of time.

**Inputs:**

* Duration (seconds)\*

<img src="/files/8OqCaTeCa6BBhhXsiz2B" alt="Wait" data-size="original">

</details>

<details>

<summary>2. Wait For Element</summary>

The 'Wait For Element' action pauses the execution until the specified element becomes visible in the window. It helps ensure that the script waits for an element to appear before proceeding with further actions.

**Inputs:**

* Timeout\*
* Locator Type and its Value\*
* Control Type\*
* Index of the element
* New Window Title
* Child Window Title

<img src="/files/fTqpofKpW81D9F7pTf79" alt="Wait For Element" data-size="original">

</details>

## AI Actions:

Introducing Qyrus's groundbreaking feature: "AI Actions." Now, effortlessly execute actions by providing a screenshot. With this cutting-edge capability, tasks like UI testing, data validation, and setting a value become a breeze. AI Actions allow you to interact with complex controls that might not have an ID or Name.

**How it Works:**

1. Capture a screenshot of the element you want to interact with.
2. Crop the image to include only the desired element.
3. In cases of identical visuals, enable the "Multiple Elements" option and specify the index value based on the element's position from top-left to bottom-right.

**Captured element is a cropped screenshot of the element.**

<details>

<summary>1. Click By Image</summary>

Perform a click action on the captured element.

**Inputs:**

* Image of the control\*
* Index (If multiple elements)

<img src="/files/PxOK9GpRNiAoJxf3zlzK" alt="Click By Image" data-size="original">

</details>

<details>

<summary>2. Click And Hold By Image</summary>

Perform a click and hold action on the captured element.

**Inputs:**

* Image of the control\* : Specifies the image to perform the click and hold action on.

  Disclaimer: To release the hold, use Release Click By Coordinate/Image actions. Release of hold can also happen with Click By Coordinates, Set by Coordinate and Click by Image action types, but this is not recommended.

<img src="/files/lpgsHqxaVRl8CrY7WOBo" alt="Click And Hold By Image" data-size="original">

</details>

<details>

<summary>3. Set By Image</summary>

Set the value of an element, which can be text to be entered in a text box. This action is performed on the captured element.

**Inputs:**

* Image of the control\*
* Data Value\*
* Index (If multiple elements)

<img src="/files/UdtnfQtn7R1zTVC3ZZIh" alt="Set By Image" data-size="original">

</details>

<details>

<summary>4. Verify Visibility By Image</summary>

Perform a visibility check on the element. This action verifies if the captured element is present on the current screen.

**Inputs:**

* Image of the control\*
* Index (If multiple elements)

<img src="/files/u8mHhc1Zznz0psq40ENE" alt="Verify Visibility By Image" data-size="original">

</details>

<details>

<summary>5. Hover By Image</summary>

Perform a hover action on the captured element.

**Inputs:**

* Image of the control\*
* Index (If multiple elements)

<img src="/files/DIuIv5nDa0Q2rW6bcCXh" alt="Hover By Image" data-size="original">

</details>

<details>

<summary>6. Release Click By Image</summary>

This action is a subsequent action of Click and Hold By Coordinates/Image, which helps in releasing the long hold. In this action, 1. If the user wants to drag and drop an object from one element to another, it can be done using Click And Hold By Coordinates/Image actions followed by Release Click By Coordinates/Image actions. 2. If the user wants to perform a click operation on a menu, which subsequently performs another operation, Click And Hold By Coordinates/Image actions can be used.

**Inputs:**

* Image of the control\* : Specifies the image to perform the release action on.
* Delay After
* Index (If multiple elements)

**Note 1 :** If the user uses Click By Coordinates/Image, and Set By Coordinate after Click And Hold By Coordinates/Image action, it will release the hold.

**Note 2 :** The user is recommended not to use any other actions between Click And Hold By Coordinates/Image and Release Click By Coordinates/Image actions as this may lead to inappropriate results.

<img src="/files/GCq22nWLC2QyLkKcxdWa" alt="Release Click By Image" data-size="original">

</details>

## Window Actions:

These actions are used to control the current window that is being used by the test.

<details>

<summary>1. Attach To Window</summary>

Execution will be attached to the window specified.

**Inputs:**

* Data Value (Window Name)\*

<img src="/files/MpT4uv4fuWq2sGksAwCD" alt="Attach To Window" data-size="original">

</details>

<details>

<summary>2. Minimize</summary>

Minimize the current window.

<img src="/files/aamV17yL3i4w44mGZz3V" alt="Minimize" data-size="original">

</details>

<details>

<summary>3. Maximize</summary>

Maximize the current window.

<img src="/files/KtDJDAEh3YQAnHO3rjBN" alt="Maximize" data-size="original">

</details>

<details>

<summary>4. Close</summary>

Close the current window.

<img src="/files/7ey4DybrtdQJsFnmeOSN" alt="Close" data-size="original">

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.qyrus.com/desktop-testing/user-actions/window-actions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
