selenium
Official Python bindings for Selenium WebDriver
Decision gist · record as of 2026-08-14
Yes. Selenium is the industry standard for browser automation and web testing in Python, actively maintained with no known vulnerabilities, permissive licensing, and low installation friction. Install it if you need to automate browser interactions, test JavaScript-heavy web applications, or scrape dynamic content. The only prerequisite is Python 3.10 or later.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- A compatible browser (Chrome, Firefox, Edge, Safari, etc.) must be installed on the system; Selenium Manager will attempt to download the matching driver automatically.
- Low friction installation with a pure-wheel distribution.
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions beyond attribution.
last release 2026-08-10 (4 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 60,237,482 downloads/mo, #506 on PyPI
Alternatives
Verify before relying
pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com")
element = driver.find_element(By.ID, "some-id")
element.click()
driver.quit()- Whether Selenium Manager's automatic driver installation works reliably on all supported platforms and in all network environments
- Performance characteristics and memory footprint for long-running automation scripts or large-scale parallel test suites
What it is and what it does
Selenium is the Python client library for WebDriver, the W3C standard protocol for remote browser control. It lets you write code that opens a browser, navigates to pages, finds elements, clicks buttons, fills forms, and reads content—all programmatically. The library abstracts away the low-level protocol details, so you work with high-level objects like `webdriver.Chrome()` and `driver.find_element(By.ID, "...")` instead of raw HTTP requests.
You typically use Selenium for two things: automated testing of web applications (often integrated with unittest or pytest) and web automation tasks like scraping JavaScript-heavy sites or repetitive data entry. Modern Selenium (4.47.0) includes Selenium Manager, which automatically downloads and manages the correct browser driver for your system, removing the old friction of manual driver installation. It depends on certifi, urllib3, websocket-client, trio, and trio-websocket for HTTP, WebSocket, and async I/O support.
Use it for
- Write automated tests for web applications that require JavaScript execution and user interaction simulation
- Scrape content from JavaScript-rendered websites that cannot be fetched with static HTTP requests
- Automate repetitive web tasks like form filling, data entry, or clicking through multi-step workflows
- Test cross-browser compatibility by running the same test script against Chrome, Firefox, Safari, and Edge
- Build end-to-end test suites integrated with pytest or unittest frameworks for CI/CD pipelines
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Selenium is the industry standard for browser automation and web testing in Python, actively maintained with no known vulnerabilities, permissive licensing, and low installation friction. Install it if you need to automate browser interactions, test JavaScript-heavy web applications, or scrape dynamic content. The only prerequisite is Python 3.10 or later.
Install
selenium on PyPI
Before you install
Low friction installation with a pure-wheel distribution. Actively maintained with a release 4 days ago. Requires Python 3.10 or later. Modern versions handle browser driver installation automatically via Selenium Manager, eliminating the manual driver management that older versions required.
Requires Python 3.10 or later. A compatible browser (Chrome, Firefox, Edge, Safari, etc.) must be installed on the system; Selenium Manager will attempt to download the matching driver automatically.
License in practice
Licensed under Apache-2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions beyond attribution.
Quickstart
pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com")
element = driver.find_element(By.ID, "some-id")
element.click()
driver.quit()
Verify before relying
- Whether Selenium Manager's automatic driver installation works reliably on all supported platforms and in all network environments
- Performance characteristics and memory footprint for long-running automation scripts or large-scale parallel test suites
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 6 packagescertifitriotrio-websockettyping_extensionsurllib3websocket-client |
| Maintenance | Actively maintained 4 days since the last release |
| First released | |
| Downloads | 60,237,482 / month, #506 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: LibrariesTopic :: Software Development :: Testing |
Evidence: selenium-4.47.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
An agent finds packages by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language. Give your agent the search over MCP.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also requestium · Selenium-Screenshot · selenium-wire · splinter · webdriver-manager · seletools · axe-selenium-python · Appium-Python-Client · marionette-driver · selenium-page-factory