splinter
browser abstraction for web acceptance testing
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 splinteruv
uv add splinterpoetry
poetry add splinterInstalling 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
Tags
More Testing packages
Pluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
virtualenvvirtualenv creates isolated Python environments…
permissive · top 100 on PyPI
coverageCoverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
pytest-asynciopytest-asyncio is a pytest plugin that enables…
permissive · top 1,000 on PyPI
pytest-json-ctrfA pytest plugin that generates test reports in…
permissive · top 1,000 on PyPI
seleniumSelenium provides Python bindings to automate…
permissive · top 1,000 on PyPI
seleniumbaseSeleniumBase is a browser automation framework…
permissive · top 5,000 on PyPI
zendriverZendriver is an async-first web automation…
agpl · top 15,000 on PyPI
robotframework-seleniumlibrarySeleniumLibrary is a Robot Framework library…
permissive · top 5,000 on PyPI
pytest-seleniumpytest-selenium is a pytest plugin that…
copyleft · top 15,000 on PyPI
requestiumRequestium merges Requests, Selenium, and…
permissive · top 15,000 on PyPI
selenium-wireExtends Selenium's Python bindings to…
permissive · top 5,000 on PyPI
marionette-driverMarionette Driver provides a Python client for…
copyleft · top 15,000 on PyPI
webdriver-managerAutomatically downloads, caches, and manages…
permissive · top 5,000 on PyPI
browserstack-localProvides Python bindings to manage BrowserStack…
unclear · top 15,000 on PyPI