selenium

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

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

开源 free 自动化工作流
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 34494
维护状态 活跃
是否开源
定价模式 free

项目数据

分类自动化工作流
开发团队SeleniumHQ
所属国家
定价模式free
价格说明开源免费(Apache 2.0)
访问状态
是否开源
开源协议Apache-2.0
主要语言Java
技术栈/模型dotnet,java,javascript,python,ruby,rust,selenium,webdriver
GitHub 星标★ 34494
30天Star增速
HF 下载量
上线时间2013-01-14 00:00:00
最近更新2026-09-17 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-18
浏览次数0

使用教程

难度:高级 约 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
    .scriptsdev-environment-setup.ps1
  3. 3手动模式:放开权限

    若不用自动脚本,先允许 Selenium 内脚本运行,并写入注册表开启 Windows 开发者模式。

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
    reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAppModelUnlock" /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_MACHINESOFTWAREMicrosoftCommand Processor" /t REG_DWORD /f /v "DisableUNCCheck" /d "1"
    reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem" /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: oolsmsys64usrin
BAZEL_SH指向 MSYS2 的 bash.exe 路径C: oolsmsys64usrinash.exe
BAZEL_VCVisual C++ 构建工具安装目录C:Program FilesMicrosoft Visual Studio2CommunityVC
BAZEL_VC_FULL_VERSIONMSVC 版本号,取自 $BAZEL_VCToolsMSVC 下的目录名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

项目介绍

selenium 是一个自动化工作流领域的开源项目,官方简介:A browser automation framework and ecosystem.。项目使用 Java 开发,在 GitHub 上获得 34494 星标。

上一篇:guibot

下一篇:dusk

同类项目推荐

n8n 开源

拖拽搭建自动化流程,轻松接入 AI 与 400+ 应用,搞定重复工作。

Fair-code workflow automation platform with native AI capabilities. Combine visual b···

★ 204578 2026-08-10
robotcode 开源

让 Robot Framework 拥有现代 IDE 体验,调试、补全、运行一气呵成。

Open Source Toolkit for Robot Framework, providing Language Server Protocol support,···

★ 299 2026-08-10
puppeteer 开源

用 JavaScript 轻松操控无头浏览器,搞定自动化测试与网页抓取。

JavaScript API for Chrome and Firefox

★ 95585 2026-08-10
customermates 开源

比 Pipedrive 直观 10 倍的现代开源 CRM,轻松管理客户与自动化流程。

Building a modern alternative to Pipedrive that is 10x more intuitive.

★ 227 2026-08-10