Capybara is a Ruby acceptance testing framework that simulates how a real user would interact with a web application. It allows developers to write tests that drive browsers, checking for expected content, links, buttons, and form interactions. Capybara integrates with drivers like Selenium, Rack::Test, and headless browsers such as Cuprite or WebKit, letting tests run in real browsers or lightweight simulation environments. Its DSL emphasizes natural language-like syntax, such as visit, click_button, and fill_in, which makes tests readable and expressive. Capybara also handles asynchronous JavaScript and dynamic content, waiting for elements to appear or actions to complete before assertions run. By bridging test suites with actual browser behavior, Capybara helps ensure that web apps behave correctly from a user’s perspective.
Features
- Abstracts user actions (visit, click_link, fill_in etc) to simulate real browser interactions
- Supports multiple drivers (Selenium, headless browser, etc) to run tests in different environments
- Works with Rack‐based apps (Rails, Sinatra, others) to test internal request handling without needing a full HTTP server in some cases
- CSS/XPath selectors, matchers, assertions for page content, visibility, etc
- Support for testing with JavaScript (via drivers that support JS) including headless modes
- Provides DSL to write expressive acceptance tests integrated into test suite (e.g., RSpec, Minitest)