杰瑞科技汇

Python Selenium如何正确安装?

目录

  1. 第一步:环境准备
    • 安装 Python
    • 验证 Python 安装
    • 安装 pip (Python 包管理器)
  2. 第二步:安装 Selenium 库
  3. 第三步:安装浏览器驱动
    • 什么是浏览器驱动?
    • 为 Chrome 安装驱动
    • 为 Firefox 安装驱动
    • 其他浏览器驱动
  4. 第四步:验证安装(运行第一个脚本)
  5. 常见问题与解决方案
  6. 总结与最佳实践

第一步:环境准备

在安装 Selenium 之前,您的电脑上需要有 Python 环境。

安装 Python

如果您还没有安装 Python,请前往 Python 官网 下载并安装。

重要提示 (Windows 用户): 在安装程序的第一个界面,务必勾选 "Add Python to PATH" 选项,这会让您在命令行中直接使用 python 命令,否则后续步骤会变得非常麻烦。

Python Selenium如何正确安装?-图1

验证 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 浏览器的版本并下载匹配的驱动。

  1. 首先安装 webdriver-manager 库:
    pip install webdriver-manager
  2. 在您的 Python 脚本中,它会自动处理驱动的下载和路径设置。这是目前最推荐的现代化方案

手动下载 (传统方法)

  1. 确定您的 Chrome 版本:打开 Chrome 浏览器,点击右上角三个点 -> 帮助 -> Google Chrome,记下版本号(0.6312.86)。
  2. 访问 Chrome for Testing availability dashboard:这是 Google 官方提供的驱动下载页面,专门为自动化测试设计。 https://googlechromelabs.github.io/chrome-for-testing/
  3. 下载对应版本的驱动
    • 在页面中找到与您的 Chrome 版本最接近的 stable (稳定版) 版本。
    • 下载对应您操作系统和系统架构(win64, mac-x64, mac-arm64, linux64)的 chromedriver 压缩包,Windows 64位用户就下载 chromedriver-win64.zip
  4. 配置驱动路径
    • 将下载的 chromedriver 文件解压。
    • chromedriver.exe (Windows) 或 chromedriver (macOS/Linux) 文件放在一个固定的路径下,C:\chromedriver/usr/local/bin
    • 在 Python 脚本中,您需要通过 Service 对象指定这个路径。

为 Firefox 安装驱动

推荐 - 使用 webdriver-manager

同样适用,只需在脚本中指定 Firefox 即可。

手动下载

  1. 确定您的 Firefox 版本:打开 Firefox,点击右上角三条横线 -> 帮助 -> Firefox
  2. 访问 GeckoDriver 下载页面https://github.com/mozilla/geckodriver/releases
  3. 下载对应版本的驱动:下载与您的操作系统匹配的最新版本。
  4. 配置驱动路径:与 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()

如何运行:

  1. 将以上代码保存为 test_selenium.py 文件。
  2. 在终端中,进入到该文件所在的目录。
  3. 运行脚本:
    python test_selenium.py

如果一切顺利,您会看到一个 Chrome 浏览器自动打开,执行搜索,然后自动关闭,终端中会打印出相应的信息。


第五步:常见问题与解决方案

  1. selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH

    • 原因:手动下载驱动后,没有将驱动程序所在的目录添加到系统的环境变量 PATH 中。
    • 解决
      • 推荐:改用 webdriver-manager,一劳永逸。
      • 手动解决:将 chromedriver.exe 所在的文件夹路径添加到系统的 PATH 环境变量中,重启终端后再运行脚本。
  2. selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XXX

    • 原因:您安装的 Chrome 浏览器版本和下载的 chromedriver 版本不匹配。
    • 解决:访问 Chrome for Testing 页面,下载与您当前 Chrome 浏览器版本完全匹配的驱动。
  3. 脚本运行很慢,或者元素找不到

    • 原因:网页加载需要时间,但脚本在页面元素还未完全加载时就尝试操作它。
    • 解决:使用等待机制。
      • 隐式等待 (Implicit Wait):在查找元素前设置一个全局等待时间,如果元素没找到,会等待最多指定的时间。driver.implicitly_wait(10) (单位:秒)。
      • 显式等待 (Explicit Wait):更精确的方式,专门等待某个元素满足特定条件(如可见、可点击),这是更推荐的做法。
  4. 在 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 文件的实际路径。


总结与最佳实践

  1. 首选自动化工具:使用 webdriver-manager 来管理浏览器驱动,可以避免绝大多数路径和版本不匹配的问题。
  2. 版本匹配:始终保持浏览器和其对应驱动的版本一致。
  3. 使用等待:不要让脚本“裸奔”,一定要加入等待机制,让脚本更稳定、更健壮,优先考虑显式等待
  4. 关闭驱动:在脚本结束时,使用 driver.quit() 而不是 driver.close()driver.quit() 会关闭整个浏览器进程并释放资源,而 driver.close() 只关闭当前标签页。
  5. 从简单开始:先确保能成功打开一个网页,然后再逐步增加定位元素、输入、点击等复杂操作。
分享:
扫描分享到社交APP
上一篇
下一篇