Selenium

Official Python bindings for Selenium WebDriver browser automation

Library
PyPI
v4.47.0
34,378stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
98/100Excellent
Development Activity100
Maintenance96
Community96
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
83/100Excellent
Architecture85
Code Quality88
Innovation82
Learning Curve75

Selenium’s Python package provides the official language bindings for WebDriver, the W3C browser-automation protocol. It lets you drive real browsers (Chrome, Firefox, Edge, Safari, WebKitGTK, WPEWebKit) programmatically — navigating pages, locating elements, filling forms, and asserting on rendered output — from ordinary Python code, either against a local browser or a remote Selenium Grid.

Modern versions bundle Selenium Manager, which automatically resolves and downloads the matching browser driver (chromedriver, geckodriver, etc.) so you no longer have to manage driver binaries and PATH entries by hand. The library is part of the larger Selenium monorepo, which also ships Java, .NET, Ruby, and JavaScript bindings plus the Grid server and IDE — all built from the same WebDriver/BiDi protocol implementation.

What You Get

  • WebDriver classes for Chrome, Firefox, Edge, Safari, WebKitGTK, and WPEWebKit, plus a Remote driver for Selenium Grid
  • Selenium Manager, which auto-resolves and downloads the correct browser driver binary for your installed browser version
  • Element location strategies (CSS selector, XPath, id, name, link text, etc.) and a fluent ActionChains API for mouse/keyboard interactions
  • WebDriver BiDi support for newer bidirectional browser automation features (network interception, console log capture)
  • Explicit/implicit wait primitives (WebDriverWait, expected_conditions) for handling asynchronous page behavior

Common Use Cases

  • End-to-end and UI regression testing of web applications across multiple real browsers
  • Cross-browser compatibility testing via Selenium Grid or cloud-hosted Selenium Grid providers
  • Web scraping and data extraction from JavaScript-rendered pages that require a real browser engine
  • Automating repetitive browser-based workflows (form submission, login flows, report downloads)

Under The Hood

Architecture - The Python bindings live in the py/ subdirectory of the SeleniumHQ/selenium monorepo, alongside Java/.NET/Ruby/JavaScript bindings and the Grid server, all sharing the same WebDriver/BiDi protocol implementation; selenium/webdriver/ is organized per-browser (chrome/, firefox/, edge/, safari/, webkitgtk/, wpewebkit/) plus a remote/ package implementing the actual W3C WebDriver wire protocol and BiDi transport that every browser-specific class delegates to. Tech Stack - Core runtime dependencies are urllib3 (HTTP transport to the driver), trio/trio-websocket (async BiDi transport), websocket-client, and typing_extensions; a Rust-based selenium-manager binary (built via setuptools-rust) is bundled to resolve and download browser drivers automatically. Requires Python 3.10+. Code Quality - The py/test/ tree has dedicated unit/ and selenium/webdriver/ integration suites plus a custom runner/, and run_mypy.py indicates type-checking is enforced project-wide; as a widely-used, decade-old project it carries strong conventions around browser-capability abstraction and protocol compliance testing. API Design - The webdriver.Chrome()/webdriver.Firefox() constructors give a near-identical API across browsers, and find_element/ActionChains/WebDriverWait form a small, consistent vocabulary; the addition of Selenium Manager significantly lowered the historical friction of manually installing and pathing browser drivers.

Used by 5 apps in this directory

Python
99%
MIT

Agent Lightning

AI Development

17,500

A Microsoft-built training framework that optimizes AI agents with reinforcement learning, automatic prompt optimization, or supervised fine-tuning — with near-zero code changes to your existing agent, in any framework.

View details
84
Repo Health
68
Technical
69
Dependency
Built with
Python99%
Updated today
Python
79%
Apache 2.0

changedetection.io

Monitoring

33,241

Self-hosted website change detection with AI-powered smart alerts, browser automation, price tracking, and 85+ notification channels.

View details
90
Repo Health
80
Technical
69
Dependency
Built with
Python79%
Updated 3 days ago
Python
63%
Apache 2.0

GPT Researcher

Productivity · AI Assistants

29,039

The pioneering open-source autonomous AI agent that conducts deep, multi-source research and produces citation-backed reports exceeding 2,000 words — faster and more reliably than any human researcher.

View details
88
Repo Health
91
Technical
64
Dependency
Built with
Python63%
TypeScript23%
Updated 1 months ago
JavaScript
50%
AGPL 3.0

QRev

CRM · AI Agents

362

Open source AI-first sales platform that replaces Salesforce with autonomous agents handling prospecting, outreach, and lead management at scale.

View details
39
Repo Health
68
Technical
65
Dependency
Built with
JavaScript50%
Python28%
TypeScript14%
Updated 6 months ago
TypeScript
52%
Other

SigNoz

Monitoring · Analytics

31,871

Self-host your entire observability stack — logs, metrics, traces, and LLM monitoring — in one OpenTelemetry-native platform, without the Datadog bill.

View details
92
Repo Health
83
Technical
70
Dependency
Built with
TypeScript52%
Go37%
Updated today

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search