# teamcapybara/capybara

**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/teamcapybara-capybara).**

10,166 stars · 1,470 forks · Ruby · MIT

## Links

- GitHub: https://github.com/teamcapybara/capybara
- Homepage: http://teamcapybara.github.io/capybara/
- awesome-repositories: https://awesome-repositories.com/repository/teamcapybara-capybara.md

## Description

Capybara is a browser automation library and web application acceptance test framework used to simulate user behavior and verify functional requirements. It serves as a cross-browser testing tool and headless browser orchestrator, allowing for the execution of test suites across multiple browser engines.

The project provides a driver-agnostic interaction layer that abstracts different browser engines, enabling users to switch between headless and full browser drivers. It supports multi-user session simulation by maintaining independent browser states and cookies to test interactions between isolated environments.

Its capabilities cover end-to-end browser automation, including user action simulation, web form interaction, and JavaScript execution. The library handles asynchronous content through polling-based synchronization and provides tools for element discovery using CSS and XPath selectors. Additionally, it includes utilities for managing browser windows and modal dialogs, as well as diagnostic features for capturing page states via HTML dumps and screenshots.

## Tags

### Testing & Quality Assurance

- [User Interaction Simulation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation.md) — Simulates real human behavior by navigating URLs and interacting with links and form fields. ([source](https://github.com/teamcapybara/capybara#readme))
- [Automated End-to-End Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/end-to-end-testing-suites/automated-end-to-end-testing.md) — Provides a unified interface for controlling browsers to automate complex, end-to-end user journeys.
- [Web Testing Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/browser-and-ui-testing/browser-automation-frameworks/web-testing-frameworks.md) — A testing tool for simulating user behavior in web browsers to verify application requirements and functional correctness.
- [Acceptance Testing](https://awesome-repositories.com/f/testing-quality-assurance/acceptance-testing.md) — Simulates real user behavior to verify that web applications meet their functional business requirements.
- [Browser Automation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/browser-automation.md) — Acts as a comprehensive library for controlling web browsers via drivers to simulate user interactions.
- [Asynchronous Polling Mechanisms](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/assertion-extensions-modes/asynchronous-interaction-utilities/asynchronous-polling-mechanisms.md) — Uses polling mechanisms to repeatedly check for element appearance or state updates before proceeding with tests.
- [Auto-Waiting Assertions](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/assertion-extensions-modes/asynchronous-interaction-utilities/auto-waiting-assertions.md) — Implements polling-based synchronization that automatically waits for dynamic elements to appear or change before asserting state.
- [UI Element Selectors](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/browser-ui-interaction/ui-element-selectors.md) — Provides mechanisms for locating and querying DOM elements using CSS and XPath selectors.
- [Cross-Browser Testing Tools](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-infrastructure-configuration/cross-browser-testing-tools.md) — Enables running the same test suites across multiple browser drivers to ensure consistent behavior across different engines.
- [Cross-Browser Execution Engines](https://awesome-repositories.com/f/testing-quality-assurance/testing-infrastructure-management/test-infrastructure/cross-browser-execution-engines.md) — Provides a unified interface to execute tests across different browser engines and rendering environments. ([source](http://teamcapybara.github.io/capybara/))
- [Multi-User Session Simulation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation/multi-user-session-simulation.md) — Maintains independent browser states and cookies to simulate interactions between multiple isolated user sessions.
- [Custom Selector Engines](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/browser-ui-interaction/ui-element-selectors/custom-selector-engines.md) — Allows the creation of reusable, domain-specific logic for locating complex elements within the web page. ([source](https://github.com/teamcapybara/capybara#readme))
- [Regional Action Scoping](https://awesome-repositories.com/f/testing-quality-assurance/regional-action-scoping.md) — Restricts element searches and interactions to specific subsections of the DOM to prevent element collisions.
- [Remote Server Testing](https://awesome-repositories.com/f/testing-quality-assurance/remote-server-testing.md) — Enables verification of application behavior by connecting test suites to live servers on remote hosts.
- [Headless Browser Controllers](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/browser-and-ui-testing/browser-automation-frameworks/headless-browser-controllers.md) — Orchestrates the execution of headless browser instances for faster automated testing in CI environments.

### Software Engineering & Architecture

- [Element Visibility Synchronization](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-to-synchronous-conversion/element-visibility-synchronization.md) — Waits for elements to appear or disappear from the page to ensure stable interaction with dynamic content. ([source](https://github.com/teamcapybara/capybara#readme))
- [Browser Driver Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/browser-driver-abstractions.md) — Implements an interface layer that decouples test logic from specific browser engines via a common command interface.

### User Interface & Experience

- [Element Locators](https://awesome-repositories.com/f/user-interface-experience/element-locators.md) — Implements utilities for identifying and selecting specific elements within the web document structure. ([source](https://github.com/teamcapybara/capybara#readme))

### Web Development

- [Form Interaction Utilities](https://awesome-repositories.com/f/web-development/form-interaction-utilities.md) — Provides imperative control over web form interaction, including text input and option selection. ([source](https://github.com/teamcapybara/capybara#readme))
- [JavaScript Execution Bridges](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-infrastructure/javascript-execution-bridges.md) — Executes custom JavaScript within the browser context to manipulate elements or extract data. ([source](https://github.com/teamcapybara/capybara#readme))
- [Contextual Session Isolation](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-infrastructure/web-browsers/isolated-tab-rendering/contextual-session-isolation.md) — Maintains independent browsing contexts and storage to simulate multiple concurrent user sessions.
- [Remote Browser Connections](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-orchestration-systems/remote-browser-connections.md) — Provides configurations and interfaces to connect to remote browser instances for automated testing. ([source](https://github.com/teamcapybara/capybara#readme))
- [Browser Session Managers](https://awesome-repositories.com/f/web-development/web-automation-scraping/web-scraping-automation/browser-automation/browser-session-managers.md) — Manages independent browser profiles and authenticated sessions to test interactions between different users. ([source](https://github.com/teamcapybara/capybara#readme))

### DevOps & Infrastructure

- [Browser Driver Configuration](https://awesome-repositories.com/f/devops-infrastructure/browser-driver-configuration.md) — Manages settings and parameters for browser automation drivers, including headless mode configuration. ([source](https://github.com/teamcapybara/capybara/blob/master/README.md))

### Part of an Awesome List

- [Testing](https://awesome-repositories.com/f/awesome-lists/devtools/testing.md) — Acceptance testing for web applications.
