# Helium

> Helium is a Python library that wraps Selenium to automate Chrome and Firefox with a high-level, label-based API.

Helium is an open-source Python library for automating browsers such as Chrome and Firefox. It was created by Michael Herrmann and is released under the MIT License. The latest release listed is v7.0.3.

## What It Is

Helium is a high-level wrapper around Selenium for web automation and scraping. Instead of HTML IDs, XPaths or CSS selectors, scripts refer to page elements by their user-visible labels. The README says this makes Helium scripts typically 30-50% shorter than comparable Selenium scripts and more stable when the underlying page changes.

## How It Works with Selenium

Helium forwards each call to Selenium, so the two libraries can be mixed in one script. For example, a Selenium driver call such as execute_script can run on a driver started with Helium's start_chrome. Helium also simplifies several tasks that are traditionally painful in Selenium:

- Elements inside nested iFrames can be used without switching into the iFrame first.
- Popup windows are focused and defocused as a user would, and you can switch to a window by part of its title.
- Implicit waits default to up to 10 seconds for an element to appear.
- Explicit waits use a short form such as wait_until(Button('Download').exists).

## Setup Path

Helium requires Python 3 and Chrome or Firefox. It installs with pip, and a virtual environment is recommended. The project provides a cheatsheet and online documentation on Read the Docs.

## Current Status

The maintainer states he has little spare time to maintain the project for free. He may not respond to emails or issues unless the matter is very easy, but he accepts and merges pull requests. Helium originally also had a Java version and Internet Explorer support, which were not carried forward.

## Features
- Label-based element selection instead of IDs, XPaths or CSS selectors
- Works with Chrome and Firefox
- Interact with elements in nested iFrames without switching
- Automatic popup window focus and switching by title
- Implicit waits up to 10 seconds by default
- Simple explicit waits with wait_until
- Can be mixed freely with Selenium API calls

## Integrations
Selenium, Chrome, Firefox

## Platforms
WINDOWS, MACOS, LINUX, API, DEVELOPER_SDK

## Pricing
Open Source

## Version
v7.0.3

## Links
- Website: https://github.com/mherrmann/helium
- Documentation: https://helium.readthedocs.io/en/latest/
- Repository: https://github.com/mherrmann/helium
- EveryDev.ai: https://www.everydev.ai/tools/helium
