项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-18 · 当前星标 ★ 34583
技术标签
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Windows 系统(README 的自动/手动安装流程均面向 Windows)
- 以管理员身份运行的 PowerShell
- MSYS2 与已安装"Desktop development with C++"工作负载的 Visual Studio Community
- 已安装 Python 与 pip(用于 Python 绑定的本地安装)
- 已安装 Docker(如需构建开发镜像)
安装与启动步骤
-
1克隆项目代码
把 Selenium 仓库克隆到你想放置的父目录,后续所有 ./go 命令都要在仓库根目录执行。
git clone https://github.com/SeleniumHQ/selenium.git -
2一键装开发环境
管理员 PowerShell 先放开脚本执行策略,再运行官方脚本自动补齐开发环境,已存在的组件不会重复安装。
Set-ExecutionPolicy Bypass -Scope Process -Force .\scripts\dev-environment-setup.ps1 -
3手动模式:放开权限
若不用自动脚本,先允许 Selenium 内脚本运行,并写入注册表开启 Windows 开发者模式。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" /t REG_DWORD /f /v "AllowDevelopmentWithoutDevLicense" /d "1" -
4配置编译依赖
装 MSYS2 并把其 bin 加入 PATH、bash.exe 路径写入 BAZEL_SH;装 Visual Studio 后设置 BAZEL_VC 与 BAZEL_VC_FULL_VERSION。
-
5开启长路径支持
Bazel 目录层级很深,需改注册表启用长路径、允许短文件名,并把 Bazel 输出根改到 C:/tmp 避免超限。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor" /t REG_DWORD /f /v "DisableUNCCheck" /d "1" reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /t REG_DWORD /f /v "LongPathsEnabled" /d "1" fsutil 8dot3name set 0 -
6构建开发镜像
可选:用 dev image 目录下的 Dockerfile 构建一个适合构建和测试 Selenium 的镜像,需在仓库根目录执行。
docker build -f scripts/dev-image/Dockerfile -t selenium-dev . -
7装 Java 到本地
Selenium 不用 Maven 构建,但可用 go 脚本把各模块部署到本地 Maven 仓库 ~/.m2/repository 供本地使用。
./go java:install -
8本地安装 Python 包
先装 Python 依赖,再生成文件到源码树以便直接从 py 目录导入;也可构建 wheel 安装到 site-packages。
pip install -r py/requirements_lock.txt ./go py:local_dev
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
PATH | 是 | 加入 MSYS2 的 bin 目录,供 Bazel 调用 Unix 风格命令 | C:\tools\msys64\usr\bin |
BAZEL_SH | 是 | 指向 MSYS2 的 bash.exe 路径 | C:\tools\msys64\usr\bin\bash.exe |
BAZEL_VC | 是 | Visual C++ 构建工具安装目录 | C:\Program Files\Microsoft Visual Studio\2022\Community\VC |
BAZEL_VC_FULL_VERSION | 是 | MSVC 版本号,取自 $BAZEL_VC\Tools\MSVC 下的目录名 | 14.40.33807 |
selenium/.bazelrc.windows.local | 否 | 把 Bazel 输出根指到 C:/tmp,避免 Windows 路径过长 | startup --output_user_root=C:/tmp |
如何确认成功
在仓库根的 py 目录下执行 python -c "import selenium" 能成功导入,且 ./go 相关命令无报错退出,即表示本地开发环境可用。
常见问题
Q:我只想用 Selenium 写自动化脚本,要按这份 README 编译源码吗?
A:不需要。README 明确是给想贡献代码的开发者看的,普通使用者请查阅官方 User Manual(selenium.dev/documentation)获取安装与用法示例。
Q:Windows 上执行脚本提示策略禁止运行怎么办?
A:以管理员身份打开 PowerShell,先执行 Set-ExecutionPolicy Bypass -Scope Process -Force(自动安装)或 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned(手动安装)再运行脚本。
Q:Bazel 报路径过长或文件名相关错误?
A:启用 LongPathsEnabled 与 DisableUNCCheck 两个注册表项,执行 fsutil 8dot3name set 0,并在 selenium/.bazelrc.windows.local 中写入 startup --output_user_root=C:/tmp。
Q:./go py:install 因权限失败怎么办?
A:该命令会尝试装到全局 Python 的 site-packages,可能不可写。README 建议先创建并激活虚拟环境,然后再安装。
Q:遇到问题去哪里求助?
A:README 给出官方支持渠道 https://www.selenium.dev/support/,可在此查询获取帮助的方式。
注意事项
- 本 README 面向贡献者,非普通用户的上手文档,使用场景请以官方 User Manual 为准。
- 自动安装脚本不会覆盖已存在的环境,遇到提示时按需选择。
- 所有 ./go 命令必须在克隆下来的 selenium 仓库根目录执行。
- 手动安装需要逐个设置 BAZEL_SH、BAZEL_VC、BAZEL_VC_FULL_VERSION 等环境变量,缺一不可。
核心亮点
- 跨浏览器与跨语言支持成熟,Java/Python/JS/Ruby/C#/Rust 均可使用
- WebDriver 已成行业标准,生态与第三方库、云测平台兼容性极好
- 配套 Grid 支持分布式并行执行,适合大规模测试与远程节点调度
不足之处
- API 偏底层,元素定位与等待需手写,脚本稳定性依赖开发者经验
- 默认启动真实浏览器,资源占用与执行速度不如无头专用方案轻量
- 版本与驱动匹配问题较常见,环境配置对新手不够友好
适用场景
- Web 应用的端到端回归测试与多浏览器兼容性验证
- 批量网页数据采集与表单自动填写
- 结合 Grid 做分布式并行测试或定时页面监控截图
替代项目
Playwright、Puppeteer、Cypress
同类项目推荐
flowpipe
开源
用代码把云上重复操作串成自动流水线
Flowpipe is a cloud scripting engine. Automation and workflow to connect your clouds···
agbrowse
开源
让 AI 用 JS 直接操控浏览器,省下大笔 token
Ultimate browser automation toolkit for AI agents. Zero MCP token tax, JS evaluate, ···
oxylabs-ai-studio-js
开源
浏览器里跑脚本,想抓哪个网站抓哪个
Structured data gathering from any website using AI-powered scraper, crawler, and br···
open-flow
开源
画布拖拽加真 TypeScript,自托管跑通自动化流程
Build workflows you can see, code, run, and own. Open-source visual workflow automat···
pydoll
开源
免 WebDriver 驱动 Chromium,模拟真人操作防检测
Pydoll is a library for automating chromium-based browsers without a WebDriver, offe···
insta-p8
开源
自托管 Instagram 自动化,AI 回复+评论转私信,省时提效
Open-source ManyChat alternative for Instagram DM, comment, story automation and AI ···
SeleniumBase
开源
写 Python 脚本自动开浏览器,绕过反爬还能跑测试
Automate and test without limits. SeleniumBase provides a browser automation framewo···
BrowserGym
开源
把浏览器变成 Gym 环境,让 LLM 智能体边玩边学会操作网页
BrowserGym, a Gym environment for web task automation
google-ai-mode-mcp
开源
让 AI 编程助手免费搜 Google,答案带引用
MCP server for free Google AI Mode search with citations. Query optimization, CAPTCH···
