selenium

用代码操控真实浏览器,自动点击填表跑测试

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 自动化工作流 🍴 复刻 8726 🐛 待处理 193 👀 关注 1238
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 34583
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费(Apache 2.0)

项目预览

selenium 项目界面预览图
图片来源:项目官网

项目数据

分类自动化工作流
开发团队SeleniumHQ
定价模式🏷️完全免费
价格说明开源免费(Apache 2.0)
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Java
技术栈/模型dotnet,java,javascript,python,ruby,rust,selenium,webdriver
GitHub 星标★ 34583
上线时间2013-01-14 00:00:00
代码更新2026-11-04
仓库体积2.30 GB
本站数据更新2026-11-04
维护状态活跃
收录时间2026-09-18
浏览次数1

项目介绍

Selenium 是一套浏览器自动化框架与生态,核心是 WebDriver 协议,让代码能像真人一样打开网页、点击、输入、读取页面内容,从而把重复的浏览器操作交给程序完成。它解决的是跨浏览器、跨语言自动化测试与网页操作的问题:同一套思路可驱动 Chrome、Firefox、Edge、Safari 等主流浏览器,并同时提供 Java、Python、JavaScript、Ruby、C#、Rust 等多语言绑定,方便团队沿用既有技术栈。除测试外,它也被广泛用于网页数据采集、表单批量填写、后台流程自动化、截图与监控等场景。项目包含 WebDriver、Grid 分布式执行、IDE 录制等组件,支持并行跑用例和远程节点调度,是自动化测试领域事实上的标准之一,社区庞大、资料丰富,遇到问题容易找到答案。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-18 · 当前星标 ★ 34583

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:高级 约 45 分钟 部署方式:本地安装 8 步

环境要求

  • Windows 系统(README 的自动/手动安装流程均面向 Windows)
  • 以管理员身份运行的 PowerShell
  • MSYS2 与已安装"Desktop development with C++"工作负载的 Visual Studio Community
  • 已安装 Python 与 pip(用于 Python 绑定的本地安装)
  • 已安装 Docker(如需构建开发镜像)

安装与启动步骤

  1. 1克隆项目代码

    把 Selenium 仓库克隆到你想放置的父目录,后续所有 ./go 命令都要在仓库根目录执行。

    git clone https://github.com/SeleniumHQ/selenium.git
  2. 2一键装开发环境

    管理员 PowerShell 先放开脚本执行策略,再运行官方脚本自动补齐开发环境,已存在的组件不会重复安装。

    Set-ExecutionPolicy Bypass -Scope Process -Force
    .\scripts\dev-environment-setup.ps1
  3. 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. 4配置编译依赖

    装 MSYS2 并把其 bin 加入 PATH、bash.exe 路径写入 BAZEL_SH;装 Visual Studio 后设置 BAZEL_VC 与 BAZEL_VC_FULL_VERSION。

  5. 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. 6构建开发镜像

    可选:用 dev image 目录下的 Dockerfile 构建一个适合构建和测试 Selenium 的镜像,需在仓库根目录执行。

    docker build -f scripts/dev-image/Dockerfile -t selenium-dev .
  7. 7装 Java 到本地

    Selenium 不用 Maven 构建,但可用 go 脚本把各模块部署到本地 Maven 仓库 ~/.m2/repository 供本地使用。

    ./go java:install
  8. 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

上一篇:guibot

下一篇:dusk

同类项目推荐

flowpipe 开源

用代码把云上重复操作串成自动流水线

Flowpipe is a cloud scripting engine. Automation and workflow to connect your clouds···

★ 485 2026-10-07
agbrowse 开源

让 AI 用 JS 直接操控浏览器,省下大笔 token

Ultimate browser automation toolkit for AI agents. Zero MCP token tax, JS evaluate, ···

★ 233 2026-09-18
oxylabs-ai-studio-js 开源

浏览器里跑脚本,想抓哪个网站抓哪个

Structured data gathering from any website using AI-powered scraper, crawler, and br···

★ 411 2026-08-09
open-flow 开源

画布拖拽加真 TypeScript,自托管跑通自动化流程

Build workflows you can see, code, run, and own. Open-source visual workflow automat···

★ 293 2026-09-17
pydoll 开源

免 WebDriver 驱动 Chromium,模拟真人操作防检测

Pydoll is a library for automating chromium-based browsers without a WebDriver, offe···

★ 7133 2026-08-10
insta-p8 开源

自托管 Instagram 自动化,AI 回复+评论转私信,省时提效

Open-source ManyChat alternative for Instagram DM, comment, story automation and AI ···

★ 178 2026-08-09
SeleniumBase 开源

写 Python 脚本自动开浏览器,绕过反爬还能跑测试

Automate and test without limits. SeleniumBase provides a browser automation framewo···

★ 13222 2026-09-18
BrowserGym 开源

把浏览器变成 Gym 环境,让 LLM 智能体边玩边学会操作网页

BrowserGym, a Gym environment for web task automation

★ 1426 2026-10-08
google-ai-mode-mcp 开源

让 AI 编程助手免费搜 Google,答案带引用

MCP server for free Google AI Mode search with citations. Query optimization, CAPTCH···

★ 154 2026-09-15