Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Implementation:Teamcapybara Capybara Capybara Built In Drivers

From Leeroopedia
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