Selenium 自动化测试入门:简介、环境搭建与架构原理

本篇是 Selenium 自动化测试系列的第一篇,带你从零认识 Selenium,完成环境搭建,并理解其底层架构原理。

一、Selenium 简介

1.1 什么是 Selenium?

Selenium 是一套用于 Web 应用程序自动化测试的开源工具集。它支持多种编程语言(Python、Java、C#、JavaScript、Ruby 等),能够模拟真实用户在浏览器中的操作行为,如点击、输入、导航等。

核心价值:

  • 回归测试自动化,减少人工重复劳动
  • 跨浏览器兼容性验证
  • 支持多种操作系统和编程语言
  • 完全开源免费,社区活跃

1.2 Selenium 的三大组件

组件 说明
Selenium WebDriver 核心组件,通过浏览器原生驱动直接控制浏览器,支持 Chrome、Firefox、Safari、Edge 等
Selenium Grid 分布式测试执行工具,可在多台机器、多种浏览器上并行运行测试
Selenium IDE 浏览器插件,提供录制和回放功能,适合快速生成测试脚本原型

本系列重点:我们以 Selenium WebDriver + Python 为主线进行讲解。


二、环境搭建

2.1 安装 Python

确保已安装 Python 3.8+:

python3 --version

2.2 安装 Selenium

pip install selenium

从 Selenium 4.6 开始,Selenium Manager 会自动管理浏览器驱动,无需手动下载 ChromeDriver 或 GeckoDriver。

2.3 验证安装

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# Selenium 4.6+ 自动管理驱动
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
print(driver.title)
driver.quit()

运行成功后,你会看到浏览器自动打开并访问百度,终端输出页面标题。

2.4 推荐开发工具

  • IDE:VS Code / PyCharm
  • 浏览器:Chrome(推荐)/ Firefox / Edge
  • 包管理:pip + venv(虚拟环境)
# 创建虚拟环境
python3 -m venv selenium_env
source selenium_env/bin/activate  # macOS/Linux
# selenium_env\Scripts\activate   # Windows

pip install selenium

三、Selenium 架构原理

3.1 WebDriver 工作原理

Selenium WebDriver 的核心是一个 Client-Server 架构

┌──────────────┐    HTTP Request     ┌──────────────────┐    Native Command    ┌──────────┐
│              │ ──────────────────> │                  │ ──────────────────> │          │
│  Test Script │    HTTP Response    │  Browser Driver  │    Browser Response │  Browser │
│  (Python)    │ <────────────────── │  (ChromeDriver)  │ <────────────────── │ (Chrome) │
│              │                     │                  │                     │          │
└──────────────┘                     └──────────────────┘                     └──────────┘

执行流程:

  1. 测试脚本通过 Selenium 客户端库发送 HTTP 请求到浏览器驱动
  2. 浏览器驱动将请求转发给浏览器
  3. 浏览器执行操作并将结果逐层返回

3.2 JSON Wire Protocol vs W3C WebDriver Protocol

特性 JSON Wire Protocol (旧) W3C WebDriver Protocol (新)
标准化 Selenium 自定义 W3C 官方标准
兼容性 需要驱动层转换 浏览器原生支持
状态 已废弃(Selenium 4+) 当前标准

Selenium 4 全面采用 W3C WebDriver Protocol,所有主流浏览器(Chrome 75+、Firefox 52+、Edge 75+)均已原生支持,通信更稳定、更快速。

3.3 关键概念

  • Session:每次 driver = webdriver.Chrome() 会创建一个新的浏览器会话,对应一个唯一的 Session ID
  • Commands:所有操作(如 find_elementclicksend_keys)都被封装为标准的 WebDriver 命令
  • Capabilities:通过 Options 配置浏览器的启动参数(如无头模式、窗口大小等)
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")          # 无头模式
options.add_argument("--window-size=1920,1080")
options.add_argument("--disable-gpu")

driver = webdriver.Chrome(options=options)
driver.get("https://www.baidu.com")
print(f"Session ID: {driver.session_id}")
driver.quit()

四、总结

本篇介绍了 Selenium 的核心组件、完整的环境搭建流程,以及 WebDriver 的底层架构原理。理解这些基础知识,有助于后续编写更稳定、更高效的自动化测试脚本。


posted @ 2026-04-07 15:53  小小阿狸。  阅读(5)  评论(0)    收藏  举报