Selenium Tools

raw JSON →
1.5.0 verified Mon Apr 27 auth: no python

A helper library for Selenium providing additional utilities such as IndexedDB interaction, local storage manipulation, drag & drop bypass, scrolling support, and webdriver wait getter. Current version is 1.5.0, released in 2024. Maintenance cadence is irregular with minor improvements and dependency updates.

pip install seletools
error ModuleNotFoundError: No module named 'seletools'
cause Package not installed or installed with wrong name (e.g., 'selenium-tools').
fix
pip install seletools
error AttributeError: 'WebDriver' object has no attribute 'seletools'
cause Attempting to access seletools as an attribute of the driver.
fix
Instantiate Seletools(driver) explicitly: from seletools.actions import Seletools; tools = Seletools(driver)
error selenium.common.exceptions.JavascriptException: Message: ReferenceError: indexedDB is not defined
cause IndexedDB is unavailable in the current browser context (e.g., file:// protocol or non-secure context).
fix
Ensure the page is loaded over HTTPS or localhost, and the browser supports IndexedDB.
gotcha IndexedDB get method may hang if webdriver implicit_wait is not set. In version <1.2.1, it would execute multiple iterations unnecessarily. Set implicit_wait explicitly.
fix Set driver.implicitly_wait(0) before IndexedDB operations if you want single iteration.
gotcha Local storage and IndexedDB methods require the page to be fully loaded and may throw errors on non-secure contexts (http vs https). Use on pages served over HTTPS.
fix Ensure the page is loaded over HTTPS and wait for page readiness before calling storage methods.
deprecated The main Seletools class exposes all utilities. Some methods may be deprecated in future releases as separate module imports become preferred.
fix Import specific modules (e.g., from seletools.scrolling import Scrolling) for direct access.

Initialize Seletools with a Selenium WebDriver instance to use utility methods.

from selenium import webdriver
from seletools.actions import Seletools

driver = webdriver.Chrome()
driver.get('https://example.com')

tools = Seletools(driver)
# Example: scroll to bottom
tools.scroll_to_bottom()

# Example: drag & drop bypass
tools.drag_and_drop(source_element, target_element)

driver.quit()