seletools
Helpful tools for Selenium on Python
What it is and what it does
Seletools is a collection of utility functions that extend WebDriver with features and workarounds not available natively. It addresses a known drag-and-drop bug in the WebDriver protocol by using JavaScript simulation instead, provides smart scrolling that accounts for fixed overlays like navbars, and adds convenience methods for interacting with browser storage (IndexedDB and Local Storage) and retrieving WebDriver wait configuration values.
The package is designed for developers writing test automation or web scraping scripts who encounter limitations in the native API. It has no external runtime dependencies, making it lightweight to add to existing projects. However, the repository has been dormant since 2024-05-12, so users should verify compatibility with their specific WebDriver version and browser environment before relying on it for new projects.
Use it for:
- Work around the known drag-and-drop bug by using JavaScript-based simulation instead of native WebDriver actions.
- Scroll to elements on pages with fixed headers or footers that would otherwise obscure the target element.
- Read and modify IndexedDB data during browser automation when you need to inspect or manipulate application state.
- Get and set Local Storage values programmatically without writing custom JavaScript snippets for each operation.
- Retrieve implicit wait, page load, and script timeout values from a WebDriver instance in versions prior to 4.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides helper functions for Selenium WebDriver that work around known bugs and add missing features like drag-and-drop, smart scrolling, wait introspection, and browser storage access.
Yes, if you are actively using WebDriver and encounter the specific issues it addresses (drag-and-drop, storage access, scrolling obstacles). The low install friction and permissive MIT license make it a safe addition. However, proceed with caution for new projects: the dormant maintenance status (no updates since 2024-05-12) means you should test compatibility with your WebDriver and browser versions first and be prepared to maintain a fork if critical issues arise.
Install
seletools on PyPI
pip
pip install seletoolsuv
uv add seletoolspoetry
poetry add seletoolsInstalling seletools
Before you install
Low friction installation with no runtime dependencies. Maintenance is dormant—last release was 2024-05-12 with no commits since—so expect no active bug fixes or updates, though the package remains functional for its current scope.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it safe to use in commercial and open-source projects.
Quickstart
pip install seletools
from seletools.actions import drag_and_drop
driver = webdriver.Chrome()
source = driver.find_element(By.CSS_SELECTOR, "...")
target = driver.find_element(By.CSS_SELECTOR, "...")
drag_and_drop(driver, source, target)
Requires Python >=3.8 and an active WebDriver instance; IndexedDB features require logging enabled on the webdriver.
Verify before relying
- Current compatibility with WebDriver versions released after 2024-05-12
- Whether JavaScript-based drag-and-drop workaround remains effective in modern browser versions
- Active maintenance status and responsiveness to issues given dormant repository state
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 824 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 101,409/month — #12,937 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: seletools-1.5.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
Selenium-ScreenshotCaptures full-page or element-level screenshots…
permissive · top 15,000 on PyPI
seleniumSelenium provides Python bindings to automate…
permissive · top 1,000 on PyPI
selenium-page-factoryImplements a page factory pattern for Selenium…
permissive · top 15,000 on PyPI
webdriver-managerAutomatically downloads, caches, and manages…
permissive · top 5,000 on PyPI
requestiumRequestium merges Requests, Selenium, and…
permissive · top 15,000 on PyPI
selenium-stealthModifies a Selenium Chrome WebDriver to evade…
permissive · top 15,000 on PyPI
selenium-wireExtends Selenium's Python bindings to…
permissive · top 5,000 on PyPI
zendriverZendriver is an async-first web automation…
agpl · top 15,000 on PyPI
undetected-chromedriverPatches Selenium's Chrome WebDriver to avoid…
copyleft · top 5,000 on PyPI
robotframework-extendedselenium2libraryA Robot Framework library for web browser…
agpl · top 15,000 on PyPI