CheckOps
Cuprite
Cuprite is an MIT-licensed, pure-Ruby Capybara driver that runs Rails and Rack system tests on headless Chrome through Ferrum, without Selenium or ChromeDriver.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Cuprite is a driver for Capybara, the browser testing DSL used in Rails system tests. Instead of Selenium and ChromeDriver, it uses Ferrum to talk to headless Chrome or Chromium over CDP, which many teams find faster and less flaky.
Swapping it in is a configuration change: register Capybara::Cuprite::Driver and set it as the JavaScript driver, and your existing visit, click_on and expect(page).to have_content tests keep working. Through page.driver.browser you also get a Ferrum::Browser for network inspection, header changes and other CDP features.
The README documents a container mode (dockerize: true, requiring Ferrum 0.17.2 or newer) for when Chrome cannot use its sandbox, while advising to prefer running the browser as a non-root user.
In the quality loop it covers system and end-to-end tests for Ruby web apps.
The source code is at rubycdp/cuprite on GitHub under the MIT licence, with about 1,400 stars; the most recent commit was on 8 November 2026.
Features
- Capybara driver: Drop-in for existing system tests.
- CDP via Ferrum: No WebDriver.
- Network helpers: Inspect traffic, block URLs and set headers.
- Container mode: Option to run Chrome inside Docker.
- Debugging: Pause and inspect the browser during a test.
Pros
- Faster Rails system tests: Removes ChromeDriver from the stack.
- Free to use: Open source under the MIT licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 8 November 2026.
Cons
- Chrome only: No cross-browser runs.
- Selenium-specific code: Calls like
managebehave differently and may need rewriting.
Usage and Links (Example)
# spec/support/cuprite.rb
require "capybara/cuprite"
Capybara.register_driver(:cuprite) { |app| Capybara::Cuprite::Driver.new(app, window_size: [1200, 800]) }
Capybara.javascript_driver = :cuprite
Resources:
Pricing
Cuprite is free and open source under the MIT licence.
Recommended for?
- Rails teams running system tests on Chrome.
- Not a fit when Firefox or Safari coverage is required.
Conclusion
Cuprite is a popular, actively maintained way to make Capybara system tests faster and simpler.
On CheckOps, Cuprite is filed under the End-to-end & functional and Integration testing stages. Related tools listed here include Capybara, Ferrum, Watir, RSpec, Selenium and Playwright. Before choosing, compare them on licence, supported languages and platforms, hosting model, and how well each fits your existing CI pipeline. Facts on this page were checked against the official website, documentation and repository on 11 November 2026; statements the vendor makes about its own product are marked as vendor claims.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Cuprite side by side.
- CCapybaraAcceptance test framework for web applications.Compare with Cuprite
FFerrumFerrum is an MIT-licensed Ruby library that controls Chrome directly through the Chrome DevTools Protocol, with no Selenium or ChromeDriver dependency.Compare with Cuprite- WWatirAn open source Ruby library for automating tests.Compare with Cuprite
RRSpecRSpec is the MIT-licensed behaviour-driven testing framework for Ruby, made up of rspec-core, rspec-expectations and rspec-mocks, and widely used with Rails via rspec-rails.Compare with Cuprite
SSeleniumA browser automation framework and ecosystem.Compare with Cuprite
PPlaywrightPlaywright is a framework for Web Testing and Automation.Compare with Cuprite