Python Selenium 自动化测试实战指南
浏览器自动化是提升 Web 测试效率的关键手段。它不仅能批量操作网页节省大量人工时间,还能确保功能验证的精准度,甚至在数据采集和跨浏览器兼容性测试中发挥重要作用。
环境搭建与基础配置
全平台安装指南
在开始之前,我们需要准备好基础组件。推荐使用 pip 安装核心库及驱动管理工具,这样可以避免手动下载驱动的繁琐步骤。
# 安装 Python 库
pip install selenium
# 浏览器驱动管理工具
pip install webdriver-manager
利用 webdriver-manager 可以自动下载并配置 Chrome 驱动,极大简化了初始化流程:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
service = webdriver.ChromeService(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
不同浏览器的驱动获取方式略有差异,以下是常见配置矩阵:
| 浏览器 | 驱动获取方式 | 典型应用场景 |
|---|---|---|
| Chrome | 官方 Chromedriver | 主流测试环境 |
| Firefox | Geckodriver | 兼容性验证 |
| Edge | MSEdgeDriver | Windows 生态测试 |
| Safari | 系统内置 | Mac 设备专属 |
核心操作全解析
元素定位的八种武器
定位元素是自动化的基石。除了基础的 ID 和 CSS 选择器外,XPath 提供了更强大的层级处理能力。
基础定位器示例:
# ID 定位
driver.find_element(By.ID, "username")
# CSS 选择器
driver.find_element(By.CSS_SELECTOR, ".login-form input[type='password']")
XPath 高级技巧:
# 文本内容定位
//button[contains(text(),'提交')]
# 层级关系定位
//div[@id='header']/ul/li[position()>2]
页面交互完全手册
表单操作看似简单,但在实际项目中要注意清空旧数据后再输入。文件上传则需根据控件类型选择方案,传统 input 标签可直接发送路径,复杂控件可能需要 AutoIT 或 PyWin32 支持。


