Selenium 简介
Selenium 简介
Selenium 是一个开源的 Web 自动化测试与浏览器控制工具集,广泛用于:
- 自动化功能测试
- 端到端(E2E)测试
- 动态网页数据抓取(爬虫)
- 模拟真实用户行为(如登录、填表、点击)
一、Selenium 的核心组件
| 组件 | 功能 |
|---|---|
| Selenium WebDriver | 核心 API,直接控制浏览器(推荐使用) |
| Selenium IDE | 浏览器插件,录制/回放脚本(适合初学者) |
| Selenium Grid | 分布式执行,支持多浏览器并行测试 |
目前主流:Selenium WebDriver(Selenium 4+)
二、支持的语言与浏览器
支持语言
- Python(最流行)
- Java
- C#
- Ruby
- JavaScript (Node.js)
- Kotlin
支持浏览器
| 浏览器 | WebDriver |
|---|---|
| Chrome | ChromeDriver |
| Firefox | GeckoDriver |
| Edge | EdgeDriver |
| Safari | SafariDriver(macOS 自带) |
| IE | IEDriverServer |
三、Selenium 4 主要新特性(2021 发布)
| 特性 | 说明 |
|---|---|
| W3C 标准协议 | 更稳定,取代旧的 JSON Wire Protocol |
| 相对定位(Relative Locators) | above(), below(), toLeftOf(), near() |
| 新窗口/标签页管理 | newWindow(), open new tab/window |
| Chrome DevTools 协议支持 | 截屏、监听网络、模拟地理位置 |
| 更好的 Docker 支持 | 官方镜像,便于 CI/CD |
四、Selenium vs 其他工具
| 工具 | 用途 | 与 Selenium 对比 |
|---|---|---|
| Puppeteer | 控制 Chrome(Node.js) | 更快、更轻量,但仅限 Chromium |
| Playwright | 多浏览器自动化 | 更现代、自动等待、更强容错 |
| Cypress | 前端 E2E 测试 | 运行在浏览器内,调试友好 |
| Requests + BeautifulSoup | 静态爬取 | 无法处理 JS 渲染 |
Selenium 优势:跨浏览器、跨语言、社区庞大、成熟稳定
五、典型应用场景
1. 自动化测试:登录 → 填写表单 → 验证结果
2. 动态爬虫:渲染 JavaScript,抓取 AJAX 数据
3. RPA(机器人流程自动化):批量操作网站
4. 截图/生成 PDF:自动化报告
5. 压力测试辅助:模拟用户点击
六、快速上手(Python 示例)
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# 输入并搜索
driver.find_element(By.ID, "kw").send_keys("Selenium")
driver.find_element(By.ID, "su").click()
print("标题:", driver.title)
driver.quit()
七、学习资源
| 类型 | 链接 |
|---|---|
| 官网 | https://www.selenium.dev |
| 文档 | https://www.selenium.dev/documentation/ |
| Python 包 | pip install selenium |
| 驱动管理 | pip install webdriver-manager |
八、一句话总结
Selenium = 程序控制真实浏览器,像人一样操作网页。
下一步建议:
学习 → Selenium 教程(完整版)
实战 → 爬取一个动态网站(如微博热搜、电商商品)
需要我用 5 分钟带你跑通第一个 Selenium 脚本 吗?回复 demo 即可!