Implementation:Teamcapybara Capybara Capybara Reset Sessions
| Knowledge Sources | |
|---|---|
| Domains | Testing, Session_Management |
| Last Updated | 2026-02-12 00:00 GMT |
Overview
Concrete tool for resetting all Capybara sessions and restoring the default driver, provided by Capybara.reset_sessions! and Capybara.use_default_driver.
Description
Capybara.reset_sessions! iterates the session pool in reverse order (so sessions that started servers are reset last), calling Session#reset! on each. Session#reset! delegates to driver.reset! (which clears cookies, navigates away from the current page), resets the scope stack, and waits for pending server requests before raising any captured server errors.
Capybara.use_default_driver sets current_driver to nil, causing it to fall back to default_driver.
Usage
Called automatically by the RSpec after hook. Call manually when implementing custom test framework hooks or when you need a clean session mid-test.
Code Reference
Source Location
- Repository: capybara
- File: lib/capybara.rb (L325-329 for reset_sessions!, L282-284 for use_default_driver), lib/capybara/session.rb (L130-141 for Session#reset!)
Signature
# Module-level methods
Capybara.reset_sessions! # -> nil
Capybara.use_default_driver # -> nil
# Session instance method
Capybara::Session#reset! # -> nil
# Aliases: cleanup!, reset_session!
Import
require 'capybara'
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (none) | — | — | No parameters; operates on global session pool |
Outputs
| Name | Type | Description |
|---|---|---|
| Clean sessions | Side effect | All sessions reset: cookies cleared, page blank, driver state clean |
| Default driver | Side effect | current_driver set to nil (falls back to default_driver) |
Usage Examples
Manual Cleanup
# In a custom after hook
after(:each) do
Capybara.reset_sessions!
Capybara.use_default_driver
end
Mid-Test Reset
scenario 'multi-user interaction' do
sign_in_as(:admin)
visit '/admin/dashboard'
Capybara.reset_sessions! # clean slate for next user
sign_in_as(:user)
visit '/user/profile'
end