Selenium

Official Python bindings for Selenium WebDriver browser automation

Library
PyPI
v4.49.0
34,513 stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
98 /100 Excellent
Development Activity 100
Maintenance 96
Community 96
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
83 /100 Excellent
Architecture 85
Code Quality 88
Innovation 82
Learning Curve 75

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 6 apps in this directory

Python
99%
MIT

Agent Lightning

AI Development

18,515

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
85
Repo Health
68
Technical
69
Dependency
Built with
Python 99%
Updated 4 days ago
Python
79%
Apache 2.0

changedetection.io

Monitoring

34,605

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

View details
91
Repo Health
80
Technical
68
Dependency
Built with
Python 79%
Updated 1 weeks ago
Python
70%
Apache 2.0

GPT Researcher

AI Assistants · Productivity

29,650

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
91
Repo Health
91
Technical
63
Dependency
Built with
Python 70%
TypeScript 18%
Updated 6 days ago
JavaScript
50%
AGPL 3.0

QRev

AI Agents · CRM

363

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

View details
38
Repo Health
68
Technical
63
Dependency
Built with
JavaScript 50%
Python 28%
TypeScript 14%
Updated 7 months ago
TypeScript
50%
Other

SigNoz

Analytics · Monitoring

32,224

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
67
Dependency
Built with
TypeScript 50%
Go 38%
Updated 4 days ago
Python
95%
AGPL 3.0

VideoHighlighter

Video Editors

138

Local AI desktop tool that scores, explains, and cuts the moments that matter in raw footage — scene, motion, audio, object, and action detection, fully offline via Ollama and Whisper.

View details
80
Repo Health
84
Technical
71
Dependency
Built with
Python 95%
Updated 5 days ago

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