About this project
Selenium is an umbrella project encapsulating a variety of tools and libraries enabling web browser automation. It provides an infrastructure for the W3C WebDriver specification, a platform and language-neutral coding interface compatible with all major web browsers. The project is made possible by volunteer contributors.
This README is primarily for developers interested in contributing. For users, the User Manual and support channels are referenced.
Key sections include:
- **Contributing**: Read CONTRIBUTING.md before submitting pull requests.
- **Installing**: Requirements for local dev environment, including Bazelisk, Java JDK 17+, and platform-specific setup for macOS and Windows. Alternatives include GitPod, Dev Containers, and Docker images. Worktrees guidance for Bazel caching.
- **Building**: Uses Bazel with custom Rake wrapper (`./go`). Common commands: `bazel build`, `bazel run`, `bazel test`, `bazel query`. Build targets defined in BUILD.bazel files. Language-specific builds via `./go <language>:build`.
- **Developing**: Details for Java (IntelliJ with Bazel plugin, Google Java Format), Python (ruff linting, local install), Ruby (debugging, RubyMine), Rust (dependencies from Cargo).
- **Testing**: Bazel configurations for testing, including browser pinning, headless mode, flaky test attempts, parallelism, filtering by size and tags. Linux virtual X-server instructions.
- **Documenting**: API docs for C#, JavaScript, Java, Python, Ruby. Update via `./go <language>:docs`.
- **Releasing**: Process on wiki, using `./go all:release` or language-specific releases.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.