# Simulate Tab Keypress

This is a pre-built Action located under the **@Custom Element**. The functionality of this Action in Avo Assure is to perform the Tab operation from the specified object. The result is stored in the given dynamic variable for further use during test execution

{% hint style="info" %}
**Note**:&#x20;

* The **Simulate Tab Keypress** action works only when the **VerifyExists** action is executed in a preceding step.
* The **Tab** key moves the cursor one step forward to the next focusable element.
  {% endhint %}

## Syntax

**Input Value**: `<ObjectType>;<VisibleText(optional)>;<Index>;<abs(optional)>`&#x20;

| Argument                            | Description                                                                                                                                            |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <p>\<ObjectType><br>(Required)</p>  | Provide the object type of element where you want to perform the tab keypress operation.  (e.g., text box).                                            |
| <p>\<VisibleText><br>(Optional)</p> | Provide the visible text associated with the object.                                                                                                   |
| <p>\<Index><br>(Required)</p>       | <p>Provide the position of the object you want to identify based on its sequence in the application.<br><strong>Note</strong>: Index start from 0.</p> |
| <p>\<value><br>(Required)</p>       | Provide the text or string which you want to send the keystroke values in the text box.                                                                |
| <p>\<abs><br>(Optional)</p>         | Provide the absolute XPath of the object you want to identify for this operation.                                                                      |

{% hint style="info" %}
**Note**:

* If the last argument **abs** is defined, the action executes using absolute identification based on the specified absolute XPath provided in the input.
* To skip an optional input value, use an extra semicolon (;).
  {% endhint %}

**Output Value**: `<Dynamic Variable>(Optional);<Dynamic Variable>(Optional)`

| Argument                                                    | Description                                                       |
| ----------------------------------------------------------- | ----------------------------------------------------------------- |
| \<Dynamic Variable>(Optional);\<Dynamic Variable>(Optional) | Both dynamic variable stores the status as **True** or **False**. |

### **Example 1: Simulating a Tab Keypress on an Input Field**&#x20;

In this example, we are explaining how to simulate pressing the Tab key on a specific object in the application interface.

* **Action**: Simulate Tab Keypress
* **Input Value**: textbox;;1
  * The first argument (**textbox**) specifies the object type to be identified.
  * The second argument is left blank to skip an optional value.
  * The third argument (**1**) specifies the index of the input field when multiple matching elements are present.
* **Output Value**: {Status}
  * The result of the Tab keypress operation is stored in the **{Status}** dynamic variable, with the following possible values:
    * **True**: If tab keypress operation is perform successfully.
    * **False**: If tab keypress operation is not perform successfully.
* **Logical Explanation**: The **Simulate Tab Keypress** action reads the identification details from the **Input Value** column (**textbox;;1**). The action locates the matching input field based on the specified object type and index and simulates a Tab keypress to move the focus to the next input element in the form. The execution result of the Tab keypress action (True) is stored in the **{Status}** variable.

<figure><img src="/files/qENLMVpuJUJR4uR2QrFC" alt=""><figcaption></figcaption></figure>

### **Example 2: Simulating a Tab Keypress on an Input Field using Optional Parameters**

In this example, we are explaining how to simulate pressing the Tab key on a specific object in the application interface using optional identification parameters.

* **Action**: Simulate Tab Keypress
* **Input Value**: textbox;Log In;1
  * The first argument (**textbox**) specifies the object type to be identified.
  * The second argument (**Log In**) specifies the visible text of the object.
  * The third argument (**1**) specifies the index of the input field when multiple matching elements are present.
* **Output Value**: {Status}
  * The result of the Tab keypress operation is stored in the **{Status}** dynamic variable, with the following possible values:
    * **True**: If tab keypress operation is perform successfully.
    * **False**: If tab keypress operation is not perform successfully.
* **Logical Explanation**: The **Simulate Tab Keypress** action reads the identification details from the **Input Value** column (**textbox;Log In;1**). The action locates the matching input field based on the specified object type, visible text, and index, and simulates a Tab keypress to move the focus to the next input element in the form. The execution result of the Tab keypress action (True) is stored in the **{Status}** variable.

<figure><img src="/files/h4a8vcUPatZ5gk4iPEFc" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: 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:

```
GET https://docs.avoautomation.com/avo-assure/actions/web/custom-1/simulate-tab-keypress.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
