Implementation:Teamcapybara Capybara Capybara Built In Drivers
Appearance
| Knowledge Sources | |
|---|---|
| Domains | Testing, Driver_Architecture |
| Last Updated | 2026-02-12 00:00 GMT |
Overview
Concrete built-in driver configurations auto-registered by Capybara at load time, defined in lib/capybara/registrations/drivers.rb.
Description
The file lib/capybara/registrations/drivers.rb registers five drivers using Capybara.register_driver:
- :rack_test — Creates a Capybara::RackTest::Driver instance
- :selenium — Creates a Capybara::Selenium::Driver with browser: :firefox
- :selenium_headless — Firefox with -headless argument
- :selenium_chrome — Chrome with --disable-site-isolation-trials
- :selenium_chrome_headless — Chrome with --headless=new and --disable-gpu (on Windows)
Usage
These are available immediately after require 'capybara'. Reference by Symbol name in driver configuration.
Code Reference
Source Location
- Repository: capybara
- File: lib/capybara/registrations/drivers.rb
- Lines: L1-47
Signature
# Pre-registered driver definitions
Capybara.register_driver :rack_test do |app|
Capybara::RackTest::Driver.new(app)
end
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, browser: :firefox)
end
Capybara.register_driver :selenium_headless do |app|
Capybara::Selenium::Driver.load_selenium
browser_options = ::Selenium::WebDriver::Firefox::Options.new
browser_options.add_argument '-headless'
Capybara::Selenium::Driver.new(app, browser: :firefox, options: browser_options)
end
Capybara.register_driver :selenium_chrome do |app|
Capybara::Selenium::Driver.load_selenium
browser_options = ::Selenium::WebDriver::Chrome::Options.new.tap do |opts|
opts.add_argument('--disable-site-isolation-trials')
end
Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
end
Capybara.register_driver :selenium_chrome_headless do |app|
Capybara::Selenium::Driver.load_selenium
browser_options = ::Selenium::WebDriver::Chrome::Options.new.tap do |opts|
opts.add_argument('--headless=new')
opts.add_argument('--disable-gpu') if Gem.win_platform?
opts.add_argument('--disable-site-isolation-trials')
end
Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options)
end
Import
require 'capybara'
# Auto-loaded via require 'capybara/registrations/drivers'
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| app | Rack::App | Yes | The Rack application (provided automatically by Capybara) |
Outputs
| Name | Type | Description |
|---|---|---|
| driver | Capybara::Driver::Base | A configured driver instance |
Usage Examples
Using Built-In Drivers
# Use RackTest for non-JS tests (fastest)
Capybara.default_driver = :rack_test
# Use headless Chrome for JS tests
Capybara.javascript_driver = :selenium_chrome_headless
# Use visible Firefox for debugging
Capybara.javascript_driver = :selenium
Related Pages
Implements Principle
Requires Environment
Page Connections
Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment