什么是 Selenium?为什么需要它?
Selenium 是一个强大的开源框架,专门用于自动化 Web 浏览器操作。这个库让开发者能够以编程方式控制浏览器,模拟真实用户行为:页面导航、表单输入、元素点击、下拉菜单操作以及更多交互动作。
Selenium 广泛应用于开发和测试的多个领域。主要使用场景包括:用户界面自动化测试、动态网站数据抓取、浏览器重复任务自动化,以及 Web 应用功能验证。
Selenium 的核心功能与优势
跨浏览器支持
Selenium 完美兼容所有主流浏览器,包括 Google Chrome、Mozilla Firefox、Microsoft Edge、Safari 和 Opera。这意味着同一套代码只需少量修改即可在不同浏览器上运行。
真实用户行为模拟
该框架能够精确模拟几乎所有的用户操作:鼠标左右键点击、拖拽元素、页面滚动、键盘输入、模态框处理等等。
灵活的元素定位方式
Selenium 提供多种页面元素定位方法:通过 ID、类名、标签名、CSS 选择器、XPath 表达式、链接文本及其他属性。这确保了处理不同类型网页时的最大灵活性。
无头模式支持
浏览器无头模式(无图形界面)让 Selenium 成为服务器、容器和 CI/CD 流水线中自动化的理想选择。
高级功能
Selenium 支持多标签页和多窗口操作、处理 JavaScript 弹窗、管理 Cookie 和会话、配置代理服务器、截图以及保存页面 HTML 代码。
Selenium 安装与配置
安装核心库
开始使用 Selenium 前,需要通过 pip 安装核心库:
pip install selenium
下载并配置浏览器驱动
每个浏览器都需要对应的驱动程序。最常用的是 Chrome 浏览器的 ChromeDriver。从 Chrome 115 版本开始,建议使用 Chrome for Testing,可从 Google 官网下载。
务必确保驱动版本与已安装的浏览器版本匹配。为简化流程,可使用 webdriver-manager 等工具:
pip install webdriver-manager
自动管理驱动
现代驱动管理方式推荐使用驱动管理器:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
Selenium 基础操作
启动浏览器与基本操作
以下是一个启动浏览器并进行页面导航的基础示例:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 配置浏览器选项
options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
# 初始化驱动
driver = webdriver.Chrome(options=options)
# 页面导航
driver.get("https://example.com")
print(f"页面标题: {driver.ti