# mherrmann/helium

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mherrmann-helium).**

8,306 stars · 513 forks · Python · MIT

## Links

- GitHub: https://github.com/mherrmann/helium
- awesome-repositories: https://awesome-repositories.com/repository/mherrmann-helium.md

## Description

Helium is a Python library and high-level wrapper for Selenium designed for browser automation, functional UI testing, and web scraping. It provides a simplified interface for interacting with web applications across different browser engines.

The library distinguishes itself by allowing users to identify and interact with web elements using visible text labels rather than relying exclusively on technical identifiers like XPaths or CSS selectors. This approach enables the creation of automation scripts based on human-readable labels.

The toolkit covers a broad range of browser automation capabilities, including element interaction, synchronization via page condition waiting, and window and popup management. It supports complex UI actions such as file attachments and drag-and-drop operations, as well as bulk element extraction for data collection. Additional utilities include automated interaction with nested iFrames and page screenshot capture.

## Tags

### Business & Productivity Software

- [Text-Based Element Discovery](https://awesome-repositories.com/f/business-productivity-software/tag-filtering-systems/html-element-filters/selector-based-element-isolation/text-based-element-discovery.md) — Locates web elements by scanning for visible human-readable text labels instead of technical identifiers like XPaths.
- [Web Task Automations](https://awesome-repositories.com/f/business-productivity-software/web-task-automations.md) — Automates routine browser chores such as form filling and navigation to reduce manual effort.

### Testing & Quality Assurance

- [Browser Automation Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/browser-and-ui-testing/browser-automation-frameworks/browser-automation-testing.md) — Provides a high-level Python library for simulating real user interactions to test web application functionality.
- [Element Interaction](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/element-interaction.md) — Provides high-level APIs to interact with web elements using human-readable labels for stable automation scripts. ([source](https://github.com/mherrmann/helium#readme))
- [UI Automation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/ui-automation.md) — Verifies user interface elements and workflows using a label-based interaction model.
- [Selenium WebDriver Automations](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/webdriver-implementations/selenium-webdriver-automations.md) — Provides a high-level Python wrapper around Selenium WebDriver to automate browser-native actions.
- [Browser Automation Interfaces](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/browser-and-ui-testing/browser-automation-frameworks/browser-automation-interfaces.md) — Offers a high-level interface for programmatically controlling browsers for automation and data extraction. ([source](https://github.com/mherrmann/helium/blob/master/setup.py))
- [UI Element Interactions](https://awesome-repositories.com/f/testing-quality-assurance/ui-element-interactions.md) — Performs standard automated actions such as clicking, typing, and selecting values on page elements. ([source](https://github.com/mherrmann/helium/blob/master/docs/cheatsheet.md))
- [Automatic Frame Switching](https://awesome-repositories.com/f/testing-quality-assurance/automatic-frame-switching.md) — Provides automatic context switching to interact with elements inside nested iframes without manual driver shifts.
- [Bulk Element Operations](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/element-interaction/bulk-element-operations.md) — Retrieves all occurrences of specific element types or selectors to facilitate bulk data scraping. ([source](https://github.com/mherrmann/helium/blob/master/docs/cheatsheet.md))

### Artificial Intelligence & ML

- [Heuristic Element Matching](https://awesome-repositories.com/f/artificial-intelligence-ml/pattern-matching-engines/heuristic-matching-engines/heuristic-element-matching.md) — Uses heuristic matching against multiple HTML attributes to identify the most likely target web element.

### Content Management & Publishing

- [Spatial-Relative Element Mapping](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/content-processing-utilities/document-element-locators/spatial-element-locators/spatial-relative-element-mapping.md) — Identifies target elements by calculating their visual coordinates relative to a known reference element.

### Data & Databases

- [Web Data Scraping](https://awesome-repositories.com/f/data-databases/web-data-scraping.md) — Extracts structured data from multiple web pages by automating browser navigation and content waiting.

### Development Tools & Productivity

- [Automation Wait Conditions](https://awesome-repositories.com/f/development-tools-productivity/automation-wait-conditions.md) — Pauses execution until defined page states or element visibility conditions are met using wait mechanisms. ([source](https://github.com/mherrmann/helium/blob/master/docs/cheatsheet.md))

### DevOps & Infrastructure

- [Browser-Based Workflow Automations](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/workflow-engines/browser-based-workflow-automations.md) — Automates the movement of data and triggering of actions across multiple websites to connect web services.

### User Interface & Experience

- [Relative Element Location](https://awesome-repositories.com/f/user-interface-experience/element-locators/relative-element-location.md) — Finds web elements based on their spatial relationship to other reference elements on the page. ([source](https://github.com/mherrmann/helium/blob/master/docs/cheatsheet.md))

### Web Development

- [Element Wait Conditions](https://awesome-repositories.com/f/web-development/dom-element-selectors/element-wait-conditions.md) — Waits for specific elements to appear or conditions to be met to ensure automation stability. ([source](https://github.com/mherrmann/helium#readme))
- [IFrame Context Resolvers](https://awesome-repositories.com/f/web-development/iframe-context-resolvers.md) — Automatically manages execution contexts to interact with elements inside nested iframes. ([source](https://github.com/mherrmann/helium#readme))
- [Web Scraping Frameworks](https://awesome-repositories.com/f/web-development/web-scraping-frameworks.md) — Provides a toolkit for extracting data from websites by automating browser interactions and element retrieval.

### Part of an Awesome List

- [Web Scraping](https://awesome-repositories.com/f/awesome-lists/devtools/web-scraping.md) — High-level Selenium wrapper for web automation.
