Python Selenium 配置教程

应用介绍

Selenium 是一个用于自动化 Web 浏览器的工具。它支持多种浏览器(Chrome, Firefox, Edge 等)和多种编程语言(Python, Java, C# 等)。

步骤 1:安装 Python

如果你还没有安装 Python,请先安装。建议使用 Python 3.6 或更高版本。

  1. 下载 Python: 访问 Python 官方网站:https://www.python.org/downloads/
  2. 安装:
    • 下载对应的安装包(Windows, macOS, Linux)。
    • 在 Windows 上,运行安装程序时,务必勾选 "Add Python X.X to PATH" 选项,这样可以省去手动配置环境变量的麻烦。
    • 按照提示完成安装。
  3. 验证安装: 打开命令行工具(Windows: cmd 或 PowerShell;macOS/Linux: Terminal),输入以下命令并按回车:
    <BASH>
    python --version
    # 或
    python3 --version
    如果显示 Python 版本号,则表示安装成功。

步骤 2:安装 pip (Python 包管理器)

pip 通常会随 Python 一起安装。你可以验证它是否已经安装:

<BASH>
pip --version

如果未安装或版本过旧,可以尝试以下命令更新或安装:

<BASH>
python -m ensurepip --upgrade
python -m pip install --upgrade pip

步骤 3:安装 Selenium 库

使用 pip 安装 Selenium Python 库。推荐在一个 虚拟环境 中安装,以避免包冲突。

  1. 打开命令行/终端。
  2. 安装 Selenium:
    <BASH>
    pip install selenium
    或者如果你想安装特定版本:
    <BASH>
    pip install selenium==4.0.0 # 示例
  3. 验证安装:
    <BASH>
    pip show selenium
    如果显示 Selenium 的信息(版本号、安装路径等),则表示安装成功。

步骤 4:下载 WebDriver

Selenium 需要一个 "WebDriver" 来与实际的浏览器进行通信。每个浏览器都需要其特定的 WebDriver。

1. 确定你的浏览器版本:

  • Chrome:
    • 打开 Chrome 浏览器。
    • 点击右上角的三个点(菜单)-> 帮助 -> 关于 Google Chrome。
    • 记下你的 Chrome 版本号(例如:Version 120.0.6099.110)。
  • Firefox:
    • 打开 Firefox 浏览器。
    • 点击右上角的三条横线(菜单)-> 帮助 -> 关于 Firefox。
    • 记下你的 Firefox 版本号。
  • Edge:
    • 打开 Edge 浏览器。
    • 点击右上角的三个点(菜单)-> 帮助和反馈 -> 关于 Microsoft Edge。
    • 记下你的 Edge 版本号。

2. 下载对应的 WebDriver:

  • Chrome (ChromeDriver):
    • 访问 ChromeDriver 官网
    • 重要: 自 Selenium 4.6.0 起,Selenium 可以自动管理 ChromeDriver,通常你不再需要手动下载。 但如果遇到问题,仍需手动下载。
    • 如果手动下载,你需要下载与你 Chrome 浏览器版本 完全匹配或非常接近 的 ChromeDriver。
      • Chrome 115 及以上版本:访问 Chrome for Testing availability,找到与你浏览器版本对应的 chromedriver
      • Chrome 114 及以下版本:在 ChromeDriver 官网找到对应的版本链接。
    • 下载后解压,你会得到一个名为 chromedriver.exe (Windows) 或 chromedriver (macOS/Linux) 的可执行文件。
  • Firefox (GeckoDriver):
    • 访问 GeckoDriver GitHub 发布页面
    • 下载与你 Firefox 浏览器版本兼容的 geckodriver
    • 下载后解压,你会得到一个名为 geckodriver.exe (Windows) 或 geckodriver (macOS/Linux) 的可执行文件。
  • Edge (MSEdgeDriver):
    • 访问 Edge WebDriver 官网
    • 下载与你 Edge 浏览器版本兼容的 msedgedriver
    • 下载后解压,你会得到一个名为 msedgedriver.exe (Windows) 或 msedgedriver (macOS/Linux) 的可执行文件。

3. 配置 WebDriver 的路径:

下载并解压 WebDriver 后,你需要让 Python 知道这个可执行文件在哪里。有几种方法:

  • 方法 A (推荐 - 自动管理,Selenium 4.6+):

    • 如果你使用的是 Selenium 4.6.0 或更高版本,并且你的浏览器(如 Chrome)与最新的驱动版本兼容,Selenium 会自动下载并管理 WebDriver。
    • 你通常不需要做任何额外配置。
  • 方法 B (推荐 - 将 WebDriver 放在系统 PATH 路径中):

    • 将下载的 WebDriver 可执行文件(例如 chromedriver.exe)移动到一个已经添加到系统 PATH 环境变量的目录中。
    • 常见的 PATH 目录包括:
      • Windows: C:\Windows\System32 (不推荐直接放系统目录) 或创建一个新目录(例如 C:\WebDriver)并将其添加到 PATH
      • macOS/Linux: /usr/local/bin 或 ~/bin
    • 如何添加 PATH (Windows):
      1. 在搜索栏输入 "环境变量",选择 "编辑系统环境变量"。
      2. 点击 "环境变量" 按钮。
      3. 在 "系统变量" 下找到 Path 变量,双击。
      4. 点击 "新建",然后输入你的 WebDriver 所在目录的完整路径(例如 C:\Drivers)。
      5. 点击确定,一路保存。
      6. 重要: 重启你的命令行工具,使 PATH 变量生效。
    • 如何添加 PATH (macOS/Linux):
      1. 编辑你的 shell 配置文件(例如 ~/.bashrc~/.zshrc~/.profile)。
      2. 添加一行:export PATH="/path/to/your/webdriver:$PATH"
      3. 保存文件并运行 source ~/.bashrc (或对应的配置文件) 使其生效。
  • 方法 C (将 WebDriver 放在项目目录中,并指定路径):

    • 将 WebDriver 文件直接放在你的 Python 脚本所在的目录中,或者项目中的一个子目录(例如 drivers/)。

    • 在代码中显式指定 WebDriver 的路径:

      <PYTHON>
      from selenium import webdriver
      from selenium.webdriver.chrome.service import Service
      import os
      # 如果 WebDriver 在当前脚本的同级目录
      # driver_path = "./chromedriver" # Linux/macOS
      # driver_path = "./chromedriver.exe" # Windows
      # 如果 WebDriver 在项目下的 drivers 文件夹中
      driver_path = os.path.join(os.getcwd(), "drivers", "chromedriver.exe")
      service = Service(executable_path=driver_path)
      driver = webdriver.Chrome(service=service)
      # ... 其他代码

步骤 5:编写第一个 Selenium 脚本

现在,所有配置都已完成,我们可以编写一个简单的 Python 脚本来测试 Selenium。

<PYTHON>
# test_selenium.py
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
import os
# --- 1. 配置 WebDriver 路径 (选择一种方式) ---
# 方式一 (推荐): Selenium 4.6+ 自动管理,如果驱动兼容,通常不需要指定路径
# driver = webdriver.Chrome()
# 方式二: 手动指定 WebDriver 路径 (如果自动管理不成功,或者想用特定版本)
# 假设 chromedriver.exe 放在项目根目录下的 'drivers' 文件夹中
# driver_path = os.path.join(os.getcwd(), "drivers", "chromedriver.exe")
# service = Service(executable_path=driver_path)
# driver = webdriver.Chrome(service=service)
# 方式三: 如果你已将 WebDriver 加入系统 PATH 环境变量
# service = Service() # 无需指定 executable_path
# driver = webdriver.Chrome(service=service)
# -----------------------------------------------
# 这里我们选择最简单的自动管理方式(通常在Selenium 4.6+版本中工作良好)
try:
print("尝试启动 Chrome 浏览器...")
driver = webdriver.Chrome()
print("浏览器已成功启动!")
# 2. 打开一个网页
driver.get("https://www.baidu.com")
print(f"已打开:{driver.current_url}")
# 3. 稍作等待,确保页面加载完成
time.sleep(2)
# 4. 查找元素 (例如,百度的搜索框)
search_box = driver.find_element(By.ID, "kw")
print("找到搜索框。")
# 5. 输入文本
search_box.send_keys("Selenium Python 教程")
print("已输入搜索内容。")
# 6. 提交表单或点击搜索按钮
search_box.submit() # 提交表单
# 或者点击按钮:
# search_button = driver.find_element(By.ID, "su")
# search_button.click()
print("已提交搜索。")
# 7. 等待搜索结果页面加载
time.sleep(3)
# 8. 打印当前页面的标题
print(f"当前页面标题:{driver.title}")
except Exception as e:
print(f"发生错误: {e}")
finally:
# 9. 关闭浏览器
if 'driver' in locals() and driver: # 确保 driver 对象存在且有效
print("关闭浏览器...")
driver.quit()
print("浏览器已关闭。")
else:
print("driver 对象未成功创建或值为 None,无需执行 driver.quit()。")

运行脚本:

  1. 将上述代码保存为 test_selenium.py 文件。
  2. 打开命令行/终端。
  3. 进入到你保存 test_selenium.py 文件的目录。
  4. 运行命令:
    <BASH>
    python test_selenium.py

你将看到 Chrome 浏览器自动打开,访问百度,输入搜索内容,并显示结果,最后关闭浏览器。

步骤 6 (可选):使用虚拟环境

强烈建议在开发 Python 项目时使用虚拟环境,特别是当你在多个项目中使用不同版本的库时。

  1. 创建虚拟环境:
    <BASH>
    python -m venv myenv # myenv 是你的虚拟环境名称,可以自定义
  2. 激活虚拟环境:
    • Windows:
      <BASH>
      .\myenv\Scripts\activate
    • macOS/Linux:
      <BASH>
      source myenv/bin/activate
    激活后,你的命令行提示符前会显示 (myenv),表示你正在虚拟环境中。
  3. 在虚拟环境中安装 Selenium:
    <BASH>
    pip install selenium
    这样,Selenium 就只会安装在这个虚拟环境中,不会影响系统全局的 Python 包。
  4. 运行脚本: 在激活虚拟环境的状态下,直接运行 python test_selenium.py
  5. 退出虚拟环境:
    <BASH>
    deactivate

常见问题与解决方案:

  • selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
    • 这意味着 WebDriver 未能找到。请检查 WebDriver 是否已下载、是否与浏览器版本匹配,并且其路径是否已正确配置(添加到 PATH 或在代码中指定)。
  • SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XX
    • 你的 ChromeDriver 版本与 Chrome 浏览器版本不匹配。请下载与你当前 Chrome 浏览器版本兼容的 ChromeDriver。
  • AttributeError: 'NoneType' object has no attribute 'quit'
    • 这通常发生在 driver 对象在 try 块中未能成功初始化(例如,启动浏览器失败),但在 finally 块中你仍然尝试调用 driver.quit()
    • if 'driver' in locals() and driver: 这个判断就是为了避免这个问题。
  • 浏览器闪退或立即关闭
    • 可能是脚本执行太快,或者在获取元素之前页面没有完全加载。
    • 使用 time.sleep() 增加等待时间(不推荐在生产代码中大量使用,应使用显式等待)。
    • 使用 Selenium 的显式等待 (WebDriverWait) 进行更健壮的元素等待。

通过以上步骤,你应该能够成功配置 Python Selenium 环境,并开始进行 Web 自动化测试和爬虫开发。

谷歌浏览器下载


点赞(0) 打赏

立即下载

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部