skillfed

splinter

browser abstraction for web acceptance testing

splinter v0.21.0 463.1K downloads/30d#6,522 on PyPI2,751
Permissive license BSD AGING released

What it is and what it does

Splinter is a browser automation framework that sits on top of multiple automation backends (Selenium, Django, Flask, ZopeTestBrowser) and presents a single, consistent API for controlling web browsers programmatically. Instead of writing code specific to Selenium or another driver, you write Splinter code that can switch backends without changing your test logic.

It's designed for web acceptance testing and automation tasks—visiting pages, filling forms, clicking buttons, checking for text—with an API meant to be intuitive and quick to learn. The framework handles common automation quirks and lets you drop down to raw Selenium when needed, making it useful for both simple test scripts and more complex automation scenarios.

Use it for:

  • Automated web acceptance testing for web applications across multiple browsers using a single API.
  • Building web scraping scripts that need to interact with JavaScript-heavy pages requiring a real browser.
  • End-to-end testing of web forms, login flows, and user workflows in CI/CD pipelines.
  • Cross-browser compatibility testing without rewriting tests for each browser driver.
  • Regression testing for web applications where UI interactions need to be validated automatically.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Splinter provides a unified Python interface for automating web browser interactions across multiple drivers (Selenium, Django, Flask, ZopeTestBrowser), enabling web application testing and automation without writing driver-specific code.

Yes, with conditions. Splinter is worth installing for web acceptance testing and browser automation if you need a unified API across multiple drivers and prefer a simpler abstraction over raw Selenium. However, the aging maintenance status (last release 2024-01-16) means you should verify compatibility with your target browsers and Selenium versions before committing to it in new projects. It has no known vulnerabilities, but consider whether active maintenance is important for your use case.

Install

splinter on PyPI

pip

pip install splinter

uv

uv add splinter

poetry

poetry add splinter

Installing splinter

Before you install

Low install friction with a single pure-Python wheel dependency (urllib3). Maintenance status is aging—last release was 2024-01-16 and the repository has not received commits since 2025-08-16, though the project remains unarchived with 2751 GitHub stars.

License in practice

BSD license is permissive, allowing commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you retain the license notice.

Quickstart

pip install splinter

from splinter import Browser

browser = Browser('firefox')
browser.visit('http://example.com')
browser.find_by_name('q').fill('search term')
browser.quit()

Requires a browser driver (Firefox, Chrome, etc.) and corresponding Selenium WebDriver or other supported automation backend to be installed separately.

Verify before relying

  • Whether the aging maintenance status (last release 2024-01-16) affects compatibility with current browser versions and Selenium releases.
  • Performance characteristics and scalability limits for large-scale automation workloads.
  • Current state of support for modern browser automation features and standards.

Package facts

License BSD (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies 1 — urllib3
Maintenance aging — 941 days since the last release
Last repo commit
First released
Downloads 463,050/month — #6,522 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: splinter-0.21.0-py3-none-any.whl

License :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

web browser automation pythonweb acceptance testing frameworkselenium wrapper abstractionautomated browser interactionweb application testing toolcross-driver browser controlpython web automation
web-automationacceptance-testingbrowser-driver

More Testing packages

Further reading