python之Selenium介绍
Selenium 是一个用于Web 自动化测试与浏览器自动化控制的开源工具套件,广泛用于:
- UI 自动化测试(回归测试、功能测试)
- 爬虫模拟(绕过简单反爬)
- 自动化运维(登录、表单操作、系统巡检)
- RPA(机器人流程自动化)
核心能力:
- 控制真实浏览器(Chrome / Firefox / Edge 等)
- 模拟用户行为(点击、输入、滚动、JS执行)
- 支持多语言(Java / Python / Go / JS 等)
1.Selenium 组件架构
Selenium 并不是单一工具,而是一个组件体系:
flowchart LR
A[Test Script
Python/Java] --> B[Selenium Client API]
B --> C[WebDriver Protocol]
C --> D[Browser Driver
chromedriver/geckodriver]
D --> E[Browser
Chrome/Firefox]
2. 核心组件拆解

2.1 Selenium Client(客户端库)
作用:
- 提供开发接口(API)
- 支持多语言调用
常见语言绑定:
- Python:
selenium - Java:
selenium-java - JavaScript:
selenium-webdriver
示例(Python):
1 | from selenium import webdriver |
2.2 WebDriver(核心控制协议)
WebDriver 是 Selenium 的核心抽象层,负责:
- 定义浏览器控制标准(W3C WebDriver)
- 统一不同浏览器的操作方式
核心思想:
用 HTTP + JSON 协议控制浏览器
典型请求:
1 | POST /session/{sessionId}/element |
2.3 Browser Driver(浏览器驱动)
作用:
- 作为 WebDriver 与浏览器之间的桥梁
- 将标准指令转换为浏览器原生操作
常见驱动:
| 浏览器 | Driver |
|---|---|
| Chrome | chromedriver |
| Firefox | geckodriver |
| Edge | msedgedriver |
| Safari | safaridriver |
工作机制:
sequenceDiagram
participant Test
participant WebDriver
participant Driver
participant Browser
Test->>WebDriver: click()
WebDriver->>Driver: HTTP request
Driver->>Browser: DevTools/Native API
Browser-->>Driver: result
Driver-->>WebDriver: response
WebDriver-->>Test: return
2.4 Selenium Server(Grid / Remote)
用于分布式执行测试:
2.5 Selenium Grid(分布式执行)
flowchart TD
A[Test Runner] --> B[Hub]
B --> C[Node1 Chrome]
B --> D[Node2 Firefox]
B --> E[Node3 Edge]
组件:
- Hub:调度中心
- Node:执行节点
2.6 Selenium IDE(已弱化)

- 浏览器插件(Chrome/Firefox)插件化进阶
- 录制 + 回放测试步骤
- 适合初学者,不适合复杂场景
3. Selenium 4 新架构(重点)
Selenium 4 引入:
3.1 W3C 标准统一
- 废弃 JSON Wire Protocol
- 完全兼容浏览器标准
3.2 内置 DevTools 支持(CDP)
可以直接操作 Chrome DevTools:
- 网络抓包
- 性能分析
- 拦截请求
4. 执行流程(底层视角)

flowchart TD
A[测试代码] --> B[Client API]
B --> C[WebDriver协议]
C --> D[Driver]
D --> E[浏览器引擎]
E --> F[DOM/JS执行]
F --> E
E --> D
D --> C
C --> B
B --> A
5. Selenium vs 其他方案
5.1 vs Playwright
| 对比项 | Selenium | Playwright |
|---|---|---|
| 协议 | WebDriver | DevTools |
| 性能 | 较慢 | 较快 |
| 多浏览器 | 强 | 强 |
| 自动等待 | 弱 | 强 |
| 复杂操作 | 中 | 强 |
👉 结论:
- 测试标准化 → Selenium
- 高性能自动化 → Playwright
6. 总结
Selenium的核心可以归纳为三点:
- 标准协议(WebDriver)
- 驱动桥接(Browser Driver)
- 真实浏览器执行
本质不是“自动化工具”,而是:
一个跨浏览器控制标准 + 分布式执行体系