SeleniumHQ/selenium

A browser automation framework and ecosystem.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 39 minutes ago
Added to GitGenius on April 7th, 2021
Created on January 14th, 2013
Open Issues & Pull Requests: 187 (+0)
Number of forks: 8,716
Total Stargazers: 34,386 (+0)
Total Subscribers: 1,246 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.7 hours
Mean response time: 23.9 days
90th percentile: 27.6 days
Tracked items: 1,317

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 32% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. 36% of tracked open issues have had no activity in three months. Only 3% of issues opened in the past year have been closed. Three people close 53% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 100
New in 7 days: 2
Closed in 7 days: 1
Avg open age: 358 days
Stale 30+ days: 73
Stale 90+ days: 53

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 3
Events in 7 days: 11

Top labels

  • I-defect (868)
  • A-needs-triaging (523)
  • I-enhancement (299)
  • C-py (209)
  • C-java (198)
  • C-dotnet (184)
  • D-chrome (169)
  • J-stale (148)

Detailed Description

Selenium is a browser automation framework that provides infrastructure for the W3C WebDriver specification, enabling platform and language-neutral coding interfaces compatible with all major web browsers. The project serves as an umbrella for various tools and libraries that automate web browser interactions, with primary support across Java, Python, JavaScript, Ruby, Rust, and .NET languages.

The repository is built using Bazel as its build system, which manages dependency downloads, generates required binaries, and executes tests efficiently. The project structure uses BUILD.bazel files to define modules that can be built, with targets referenced using Bazel's naming convention. Common Bazel commands like bazel build, bazel run, and bazel test are frequently wrapped with custom Rake commands executed through a ./go command interface. The codebase requires Java JDK version 17 or greater and Bazelisk, a Bazel wrapper that automatically downloads the specified Bazel version.

Development environments can be set up locally across all platforms, with platform-specific requirements documented for macOS, Windows, and Linux. For contributors who prefer not to set up local environments, the project offers alternatives including GitPod, Dev Containers, and Docker images. The repository also supports Git worktrees with Bazel caching to avoid redundant dependency downloads and rebuilds across multiple checkouts.

The project is classified across multiple automation and testing domains including software testing, test automation, cross-browser testing, web automation, WebDriver API, end-to-end testing, Selenium IDE, locators, test scripts, Selenium Grid, UI testing, and browser testing. The repository overlaps with contributors from microsoft/vscode, microsoft/typescript, and rust-lang/rust, suggesting cross-project collaboration and shared expertise.

Development practices include Google Java Format for linting Java code, with an auto-formatting script available at ./scripts/format.sh. Dependencies are centrally managed through a MODULE.bazel file, with tools provided to update and pin new dependencies automatically. The project emphasizes contribution guidelines documented in CONTRIBUTING.md and provides comprehensive setup documentation for Windows developers, including both automatic installation scripts and manual installation options with detailed environment variable configuration.

The repository includes extensive documentation for users through a User Manual at selenium.dev/documentation and multiple support channels for those encountering issues during implementation or contribution.