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 Driver Configuration

From Leeroopedia
Knowledge Sources
Domains Testing, Configuration
Last Updated 2026-02-12 00:00 GMT

Overview

Concrete tool for configuring which browser driver Capybara uses, provided by the Capybara module-level configuration API.

Description

Capybara exposes driver configuration through Capybara.default_driver=, Capybara.javascript_driver=, and Capybara.current_driver=. These are delegated from Capybara to Capybara::Config which stores them as instance variables (or thread variables when threadsafe mode is enabled). The getters return :rack_test and :selenium respectively when no explicit value has been set.

Usage

Set these in your test configuration block. Use default_driver for the baseline driver and javascript_driver for JS-dependent tests. current_driver is typically set automatically by RSpec hooks but can be set manually for one-off tests.

Code Reference

Source Location

  • Repository: capybara
  • File: lib/capybara.rb (delegators at L44-46), lib/capybara/config.rb (writers at L16, getters at L74-76, L82-84)
  • Lines: lib/capybara.rb:L261-276 (current_driver/current_driver=)

Signature

# In Capybara module (delegated to Config)
Capybara.default_driver = name          # -> Symbol
Capybara.default_driver                 # -> Symbol (default: :rack_test)

Capybara.javascript_driver = name       # -> Symbol
Capybara.javascript_driver              # -> Symbol (default: :selenium)

Capybara.current_driver = name          # -> Symbol/nil
Capybara.current_driver                 # -> Symbol (falls back to default_driver)

Capybara.use_default_driver             # -> nil (resets current_driver to nil)

Import

require 'capybara'

I/O Contract

Inputs

Name Type Required Description
name Symbol Yes Name of a registered driver (e.g., :rack_test, :selenium, :selenium_chrome_headless)

Outputs

Name Type Description
Driver selection Symbol The driver name that will be used for the next session creation

Usage Examples

Configure Drivers

# In spec_helper.rb or rails_helper.rb
Capybara.default_driver = :rack_test
Capybara.javascript_driver = :selenium_chrome_headless

# Or via configure block:
Capybara.configure do |config|
  config.default_driver = :rack_test
  config.javascript_driver = :selenium_chrome_headless
end

Per-Test Override

# Temporarily use a specific driver
Capybara.using_driver(:selenium_chrome) do
  visit '/heavy-js-page'
  expect(page).to have_content('Loaded')
end

Related Pages

Implements Principle

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment