# Chromium API

> **Chromium API** is a browser automation input method based on [Devtools protocol](https://chromedevtools.github.io/devtools-protocol/) and it provides many benefits when automating a Chromium-based browser.

**Chromium API** is a browser automation input method based on [Devtools protocol](https://chromedevtools.github.io/devtools-protocol/) and it provides many benefits when automating a Chromium-based browser.

## Supported browsers

* Microsoft Edge
* Google Chrome

## Supported UI Automation activities

It can be used with the following Modern activities:

* [Use Application/Browser](https://docs.uipath.com/activities/docs/n-application-card)
* [Click](https://docs.uipath.com/activities/docs/n-click)
* [Type Into](https://docs.uipath.com/activities/docs/n-type-into)
* [Hover](https://docs.uipath.com/activities/docs/n-hover)
* [Keyboard Shortcuts](https://docs.uipath.com/activities/docs/n-keyboard-shortcuts)
    :::note
    This method only works on web elements. It doesn't work on elements that are not part of the webpage, such as pop-ups.
    :::
  ## Requirements

You need the latest Edge extension and the 21.10.3 or higher UiPath.UIAutomation.Activities package.

## Head to Head Comparison

Here are some insights you might want to consider when designing browser automation with the **ChromiumAPI** input method.

### ChromiumAPI Vs HardwareEvents

#### Reliability

Sending keys/mouse input via hardware events means sending them to the operating system’s mouse/keyboard input stream. From there, the events are forwarded to the target application, the browser in our case, which parses them and sends them further to the web pages.

Sending keys/mouse input via **ChromiumAPI** means sending them directly to the browser. Therefore, this input method eliminates a communication channel that can fail (as any other communication channel).

Directly communicating with the browser via this new method means fewer communication channels, and thus improved automation reliability.

#### Works in the background

Hardware events need the elements to be on the screen, focused, in the foreground. **ChromiumAPI** does not have this requirement as it works while the browser is minimized and another tab is focused (mind that the modern activities tend to activate the working tab).

### ChromiumAPI Vs Simulate

#### Improved efficiency

The **ChromiumAPI** sends trusted events triggers, which are the exact chain of events triggered when a human does the same action. This means that, besides the automation that worked with Simulate, a lot more is available now through **ChromiumAPI**.

#### Other benefits

It allows sending hotkeys directly to the browser.

The **Clear before typing** property is natural with this method, since it does not empty the target element field by default.

The **Click with modifiers** actions are more efficient and reliable.

:::note
When the browser is started with **ChromiumAPI**, a ribbon shows up stating that the browser started in debug mode (highlighted below in blue). This message does not show up if the extension is installed via [Group Policies that affect the UiPath Extension for Edge](https://docs.uipath.com/studio/standalone/2023.10/user-guide/edge-group-policies#group-policies-that-affect-the-uipath-extension-for-edge). 
:::

![docs image](https://dev-assets.cms.uipath.com/assets/images/activities/activities-docs-image-299943-21ce6ad0.webp)
