目录
- 第一步:环境准备
- 安装 Python
- 验证 Python 安装
- 安装 pip (Python 包管理器)
- 第二步:安装 Selenium 库
- 第三步:安装浏览器驱动
- 什么是浏览器驱动?
- 为 Chrome 安装驱动
- 为 Firefox 安装驱动
- 其他浏览器驱动
- 第四步:验证安装(运行第一个脚本)
- 常见问题与解决方案
- 总结与最佳实践
第一步:环境准备
在安装 Selenium 之前,您的电脑上需要有 Python 环境。
安装 Python
如果您还没有安装 Python,请前往 Python 官网 下载并安装。
重要提示 (Windows 用户):
在安装程序的第一个界面,务必勾选 "Add Python to PATH" 选项,这会让您在命令行中直接使用 python 命令,否则后续步骤会变得非常麻烦。

验证 Python 安装
打开您的终端(在 Windows 上是 命令提示符 或 PowerShell,在 macOS/Linux 上是 终端),输入以下命令:
python --version
或者(如果您同时安装了 Python 2 和 Python 3,推荐使用 python3):
python3 --version
如果看到类似 Python 3.10.8 的输出,说明 Python 已成功安装。
安装 pip
pip 是 Python 的包安装工具,现代的 Python 安装包通常会自动包含 pip,您可以通过以下命令检查 pip 是否已安装:
pip --version
pip 未安装或版本过低,可以使用以下命令进行安装(推荐使用 ensurepip):
python -m ensurepip --upgrade
第二步:安装 Selenium 库
使用 pip 来安装 Selenium 库本身,打开您的终端,运行以下命令:
pip install selenium
或者,如果您使用的是 Python 3:
pip3 install selenium
安装完成后,您会看到 "Successfully installed selenium-..." 的提示,这表示 Python 环境中的 Selenium 库已经准备就绪。
第三步:安装浏览器驱动
这是 Selenium 自动化中最关键也最容易出错的一步。
什么是浏览器驱动?
您可以把它想象成 Selenium (指挥官) 和 浏览器 (士兵) 之间的翻译官,Selenium 发出的指令(如 "打开网页"、"点击按钮")需要通过驱动程序翻译成浏览器能够理解的特定命令,没有驱动,Selenium 无法控制任何浏览器。
核心原则: 您需要为您要控制的浏览器安装对应的驱动程序。
为 Chrome 安装驱动 (最常用)
推荐 - 使用 webdriver-manager 自动管理 (最简单、最推荐)
这个方法可以完全免去手动下载和管理驱动的麻烦,它会自动检测您 Chrome 浏览器的版本并下载匹配的驱动。
- 首先安装
webdriver-manager库:pip install webdriver-manager
- 在您的 Python 脚本中,它会自动处理驱动的下载和路径设置。这是目前最推荐的现代化方案。
手动下载 (传统方法)
- 确定您的 Chrome 版本:打开 Chrome 浏览器,点击右上角三个点 ->
帮助->Google Chrome,记下版本号(0.6312.86)。 - 访问 Chrome for Testing availability dashboard:这是 Google 官方提供的驱动下载页面,专门为自动化测试设计。 https://googlechromelabs.github.io/chrome-for-testing/
- 下载对应版本的驱动:
- 在页面中找到与您的 Chrome 版本最接近的
stable(稳定版) 版本。 - 下载对应您操作系统和系统架构(
win64,mac-x64,mac-arm64,linux64)的chromedriver压缩包,Windows 64位用户就下载chromedriver-win64.zip。
- 在页面中找到与您的 Chrome 版本最接近的
- 配置驱动路径:
- 将下载的
chromedriver文件解压。 - 将
chromedriver.exe(Windows) 或chromedriver(macOS/Linux) 文件放在一个固定的路径下,C:\chromedriver或/usr/local/bin。 - 在 Python 脚本中,您需要通过
Service对象指定这个路径。
- 将下载的
为 Firefox 安装驱动
推荐 - 使用 webdriver-manager
同样适用,只需在脚本中指定 Firefox 即可。
手动下载
- 确定您的 Firefox 版本:打开 Firefox,点击右上角三条横线 ->
帮助->Firefox。 - 访问 GeckoDriver 下载页面: https://github.com/mozilla/geckodriver/releases
- 下载对应版本的驱动:下载与您的操作系统匹配的最新版本。
- 配置驱动路径:与 Chrome 驱动类似,将
geckodriver.exe(Windows) 或geckodriver(macOS/Linux) 放在固定路径,并在脚本中指定。
第四步:验证安装(运行第一个脚本)
我们来写一个简单的脚本,让它自动打开一个浏览器,访问 Google,然后搜索 "Selenium"。
使用 webdriver-manager 的示例 (推荐):
这个脚本不需要您手动下载任何驱动。
# test_selenium.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
# 1. 设置自动化选项 (可选,例如无头模式)
# options = webdriver.ChromeOptions()
# options.add_argument("--headless") # 无头模式,不显示浏览器界面
# options.add_argument("--disable-gpu")
# options.add_argument("--no-sandbox")
# 2. 初始化 WebDriver
# webdriver-manager 会自动下载并管理驱动
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
try:
# 3. 打开目标网页
print("正在打开 Google...")
driver.get("https://www.google.com")
# 4. 定位搜索框并输入内容
# name="q" 是 Google 搜索框的 name 属性
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Selenium")
# 5. 模拟按下回车键
search_box.send_keys(Keys.RETURN)
# 6. 等待几秒,观察结果
print("正在搜索,等待3秒...")
driver.implicitly_wait(3) # 隐式等待,最多等待3秒
# 7. 获取页面标题并打印
print(f"页面标题是: {driver.title}")
finally:
# 8. 关闭浏览器
print("任务完成,关闭浏览器。")
driver.quit()
如何运行:
- 将以上代码保存为
test_selenium.py文件。 - 在终端中,进入到该文件所在的目录。
- 运行脚本:
python test_selenium.py
如果一切顺利,您会看到一个 Chrome 浏览器自动打开,执行搜索,然后自动关闭,终端中会打印出相应的信息。
第五步:常见问题与解决方案
-
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH- 原因:手动下载驱动后,没有将驱动程序所在的目录添加到系统的环境变量
PATH中。 - 解决:
- 推荐:改用
webdriver-manager,一劳永逸。 - 手动解决:将
chromedriver.exe所在的文件夹路径添加到系统的PATH环境变量中,重启终端后再运行脚本。
- 推荐:改用
- 原因:手动下载驱动后,没有将驱动程序所在的目录添加到系统的环境变量
-
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX- 原因:您安装的 Chrome 浏览器版本和下载的
chromedriver版本不匹配。 - 解决:访问 Chrome for Testing 页面,下载与您当前 Chrome 浏览器版本完全匹配的驱动。
- 原因:您安装的 Chrome 浏览器版本和下载的
-
脚本运行很慢,或者元素找不到
- 原因:网页加载需要时间,但脚本在页面元素还未完全加载时就尝试操作它。
- 解决:使用等待机制。
- 隐式等待 (Implicit Wait):在查找元素前设置一个全局等待时间,如果元素没找到,会等待最多指定的时间。
driver.implicitly_wait(10)(单位:秒)。 - 显式等待 (Explicit Wait):更精确的方式,专门等待某个元素满足特定条件(如可见、可点击),这是更推荐的做法。
- 隐式等待 (Implicit Wait):在查找元素前设置一个全局等待时间,如果元素没找到,会等待最多指定的时间。
-
在 macOS 上出现错误:
chromedriver cannot be opened because the developer cannot be verified.- 原因:macOS 的安全机制阻止了未签名的应用程序(如 chromedriver)运行。
- 解决:在终端中运行以下命令来授予执行权限:
xattr -dr com.apple.quarantine /path/to/your/chromedriver
请将
/path/to/your/chromedriver替换为chromedriver文件的实际路径。
总结与最佳实践
- 首选自动化工具:使用
webdriver-manager来管理浏览器驱动,可以避免绝大多数路径和版本不匹配的问题。 - 版本匹配:始终保持浏览器和其对应驱动的版本一致。
- 使用等待:不要让脚本“裸奔”,一定要加入等待机制,让脚本更稳定、更健壮,优先考虑显式等待。
- 关闭驱动:在脚本结束时,使用
driver.quit()而不是driver.close()。driver.quit()会关闭整个浏览器进程并释放资源,而driver.close()只关闭当前标签页。 - 从简单开始:先确保能成功打开一个网页,然后再逐步增加定位元素、输入、点击等复杂操作。
