---
title: Automate web application
description: Automate browser-based workflows by simulating user interactions such as clicking, typing, extracting, and navigating on web applications.
category: Application
tags: [automation, browser, web app, RPA, scraping]
---

# Automate web application

## **Description**

The **Automate Web Application** activity enables automation of tasks within a web browser by simulating human-like interactions. It allows workflows to **open a URL**, **interact with input fields**, **click buttons**, **extract text**, **wait for events**, **run custom scripts**, and more—all within a defined sequence of actions.

This activity is ideal for **browser automation**, **UI-based scraping**, or integrating with third-party apps that lack APIs.

> **Use case**:  
> In a price-monitoring workflow, use this activity to navigate to an eCommerce site, input a product name, extract its price, and take a screenshot. The result can be logged, analyzed, or emailed via a downstream activity.

## **Input**

- **Data** – Optional

## **Output**

| Output Type | Format | Description                                                        |
| ----------- | ------ | ------------------------------------------------------------------ |
| **Data**    | JSON   | Result of executed browser actions, including screenshots and logs |

## **Configuration Fields**

| Field Name     | Description                                                                                                            |
| -------------- | ---------------------------------------------------------------------------------------------------------------------- |
| **Start URL**  | The initial URL to launch in the browser for automation (e.g., `https://example.com/login`).                           |
| **Browser**    | Web browser to use. Options: `Chrome`, `Firefox`.                                                                      |
| **Key Column** | Maps a unique identifier from the input data to each execution cycle. Helps track outputs row-wise.                    |
| **Args**       | Optional input arguments from previous activity to dynamically control actions (e.g., user credentials, search terms). |
| **Actions**    | A sequenced list of browser-based tasks to perform. See details in the next section.                                   |

---

## **Action Types & Selector Syntax**

Each **action** supports configuration of its **selector** and **parameters**.

### **Selector Basics**

Most actions use a selector to identify the target HTML element. Selectors must follow **CSS Selector** conventions.

To get the selector of an element on a webpage, right-click the element in your browser, choose “Inspect”, then in the Developer Tools panel, right-click the highlighted HTML and choose “Copy → Copy selector”. This gives a unique CSS selector you can use in automation.

| Selector Type | Example                             | Description                                    |
| ------------- | ----------------------------------- | ---------------------------------------------- |
| **ID**        | `#username`                         | Matches element with ID `username`.            |
| **Class**     | `.login-button`                     | Matches any element with class `login-button`. |
| **Tag**       | `input`                             | Matches all `<input>` elements.                |
| **Attribute** | `input[name='email']`               | Matches input element with `name="email"`.     |
| **Hierarchy** | `div.form-group > input[type=text]` | Matches child `input` inside `div.form-group`. |
| **Multiple**  | `ul > li:nth-child(2)`              | Matches the second list item.                  |

### **Supported Actions**

| Action Type             | Description                                                                      |
| ----------------------- | -------------------------------------------------------------------------------- |
| **Click**               | Simulates a click on an element (`selector` required).                           |
| **Input Text**          | Enters text into an input field (`selector` and `text` required).                |
| **Wait**                | Waits for a fixed number of milliseconds (`duration` field required).            |
| **Script**              | Executes a custom JavaScript snippet in the browser context.                     |
| **Select Field**        | Selects a field (typically for focus or validation).                             |
| **Extract Text**        | Extracts visible text from a target element (`selector` required).               |
| **Fill**                | Similar to Input Text but used for full form population (`selector`, `value`).   |
| **Dynamic Text**        | Inserts dynamic text based on input data or variables.                           |
| **Drag And Drop**       | Drags one element and drops it on another (`sourceSelector`, `targetSelector`).  |
| **Dropdown**            | Opens a dropdown element (`selector`) and selects an option.                     |
| **Find Selector**       | Locates the presence of an element in the DOM (`selector`).                      |
| **Focus**               | Moves browser focus to a specific element.                                       |
| **Screenshot**          | Captures a screenshot at the current step of the browser window or page section. |
| **Hover**               | Simulates a mouse hover over an element.                                         |
| **SelectOption**        | Selects an option in a dropdown by value or visible label (`selector`, `value`). |
| **Tap**                 | Simulates a mobile tap action.                                                   |
| **Wait for Selector**   | Waits until a selector becomes visible or present in the DOM.                    |
| **Wait for Navigation** | Pauses until a page reload or navigation completes.                              |

---

## **Sample Input**

_Not applicable_

---

## Sample Configuration

| **Field**   | **Value**                       |
| ----------- | ------------------------------- |
| `startUrl`  | `https://www.google.com/`       |
| `browser`   | `Chrome`                        |
| `keyColumn` | `SearchKeyword`                 |
| `args`      | `{ "searchTerm": "Infoveave" }` |
| `actions`   | See example below               |

### Actions Example:

| **Action Type**       | **Selector Value**             | **Value**   |
| --------------------- | ------------------------------ | ----------- |
| `Input Text`          | `input[name='q']`              | `Infoveave` |
| `Wait for selector`   | `input[name='q']`              | _None_      |
| `Keyboard Press`      | `input[name='q']`              | `Enter`     |
| `Wait for navigation` | _None_                         | _None_      |
| `Click`               | `div#search h3:nth-of-type(1)` | _None_      |
| `Wait for navigation` | _None_                         | _None_      |
| `Screenshot`          | _None_                         | `5 `        |

| Key              | Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `www.google.com` | <ul> <li>**Step 0**:<ul> <li>**Completed On**: 2025-07-14T12:58:21.1426421+00:00</li> <li>**Argument**: `Infoveave`</li> <li>**Step Number**: 0</li> <li>**Action**: Input Text</li> <li>**Selector**: `input[name='q']`</li> <li>**Success**: true</li> <li>**Ref ID**: `887607b4-f1be-4d3c-ad1b-159e4a686547`</li></ul></li> <li>**Step 1**:<ul> <li>**Completed On**: 2025-07-14T12:58:21.1642283+00:00</li> <li>**Argument**: _(empty)_</li> <li>**Step Number**: 1</li> <li>**Action**: Wait for Selector</li> <li>**Selector**: `input[name='q']`</li> <li>**Success**: true</li> <li>**Ref ID**: `887607b4-f1be-4d3c-ad1b-159e4a686547`</li></ul></li> <li>**Step 2**:<ul> <li>**Completed On**: 2025-07-14T12:58:21.1840000+00:00</li> <li>**Argument**: `Enter`</li> <li>**Step Number**: 2</li> <li>**Action**: Keyboard Press</li> <li>**Selector**: `input[name='q']`</li> <li>**Success**: true</li> <li>**Ref ID**: `887607b4-f1be-4d3c-ad1b-159e4a686547`</li></ul></li> <li>**Step 3**:<ul> <li>**Completed On**: 2025-07-14T12:58:21.2040000+00:00</li> <li>**Argument**: _(none)_</li> <li>**Step Number**: 3</li> <li>**Action**: Wait for Navigation</li> <li>**Success**: true</li> <li>**Ref ID**: `887607b4-f1be-4d3c-ad1b-159e4a686547`</li></ul></li> <li>**Step 4**:<ul> <li>**Completed On**: 2025-07-14T12:58:21.2240000+00:00</li> <li>**Argument**: _(none)_</li> <li>**Step Number**: 4</li> <li>**Action**: Click</li> <li>**Selector**: `div#search h3:nth-of-type(1)`</li> <li>**Success**: true</li> <li>**Ref ID**: `887607b4-f1be-4d3c-ad1b-159e4a686547`</li></ul></li> <li>**Step 5**:<ul> <li>**Completed On**: 2025-07-14T12:58:21.2440000+00:00</li> <li>**Step Number**: 5</li> <li>**Action**: Wait for Navigation</li> <li>**Success**: true</li> <li>**Ref ID**: `887607b4-f1be-4d3c-ad1b-159e4a686547`</li></ul></li> <li>**Step 6**:<ul> <li>**Completed On**: 2025-07-14T12:58:21.2640000+00:00</li> <li>**Argument**: `5`</li> <li>**Step Number**: 6</li> <li>**Action**: Screenshot</li> <li>**Success**: true</li> <li>**Screenshot Path**: `/automation-snapshots/screenshot-6.png`</li> <li>**Ref ID**: `887607b4-f1be-4d3c-ad1b-159e4a686547`</li></ul></li></ul> |
