1. 项目概述:为什么从环境搭建开始?

如果你刚接触自动化测试,或者想用Python做点网页自动化的活儿,比如自动填表、抢票、数据抓取,那你大概率会听到Selenium这个名字。很多教程一上来就让你写代码,但十有八九,第一步“环境搭建”就能卡住一半的人。浏览器打不开、驱动对不上、包安装报错……这些问题不解决,后面的自动化都是空中楼阁。我自己带团队、做项目,见过太多新手在这第一步就放弃了,所以我觉得,把环境搭建讲透、讲稳,比直接扔一段复杂的脚本要有用得多。

这个“Selenium+Python自动化1-环境搭建”,核心目标就是给你铺一条从零到一、绝对能走通的路。它面向的是所有想入门自动化,但可能连Python都没装利索的朋友。你别看它只是“第一步”,这里面包含了工具选型的逻辑、版本匹配的“潜规则”、以及一堆只有踩过坑才知道的避雷技巧。搞定了它,你才算是拿到了进入自动化世界大门的钥匙,后续无论是写测试用例还是做爬虫,才有了稳定的基础。接下来,我会按照一个老手实际操作的顺序,带你一步步走完整个过程,并把每个环节为什么这么做、可能会遇到什么坑,都掰开揉碎了讲清楚。

2. 核心工具选型与版本协同策略

环境搭建不是简单地把几个软件装上就行,关键在于让它们“协同工作”。这里面最核心的三个部件是:Python解释器、Selenium库、以及浏览器驱动。它们的版本如果“打架”,环境就废了。

2.1 Python解释器:稳定比追新更重要

对于自动化项目,尤其是企业级应用,Python版本的稳定性是第一位的。目前主流且长期支持的版本是Python 3.8到Python 3.11。我不建议新手一上来就用最新的Python 3.12或3.13,因为一些第三方库的兼容性可能会滞后。

  • 为什么选3.8+? 这个版本区间的语法成熟,生态支持极其完善,几乎所有你需要的库(包括Selenium)都有稳定版本。从3.8开始, f-string walrus operator 等现代语法也已支持,写起代码来更简洁。
  • 安装建议 :直接从Python官网下载安装包。安装时务必勾选“Add Python to PATH”(将Python添加到环境变量)。这是最关键的一步,勾选了,你才能在命令行里直接输入 python pip 命令。很多新手在命令行输入 python 没反应,九成是因为安装时漏了这一步。
  • 验证安装 :安装完成后,打开命令行(Windows是CMD或PowerShell,Mac/Linux是Terminal),输入 python --version 。如果正确显示版本号(如 Python 3.10.11 ),说明安装和PATH配置成功。

注意:如果你的电脑上之前有老版本的Python(比如2.7),新版本安装后,命令行里 python 命令指向的可能是老版本。这时可以尝试用 python3 --version 来检查。为了统一,我建议在后续所有命令中,如果需要明确版本,使用 python3 pip3

2.2 Selenium库:通过pip精准安装

Selenium不是一个独立软件,而是一个Python的第三方库。我们通过Python的包管理工具 pip 来安装它。这里面的门道在于版本指定和镜像源。

  1. 基础安装 :在命令行中输入 pip install selenium 。这会安装Selenium的最新稳定版(目前是4.x系列)。4.x版本相比3.x有重大升级,API更规范,也加入了对CDP(Chrome DevTools Protocol)等新特性的支持,是绝对的首选。
  2. 安装特定版本 :如果你需要与某些旧项目兼容,可以指定版本,例如 pip install selenium==3.141.0 。但对于新项目,不要这么做,直接用新版。
  3. 国内加速 :直接使用官方源下载可能会很慢。我们可以使用国内的镜像源,速度飞快。常用的有清华源、阿里源。
    • 临时使用: pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
    • 设为默认(推荐):升级pip后,创建或修改配置文件。
      • Windows:在用户目录(如 C:\Users\你的用户名\ )下创建 pip 文件夹,里面新建一个 pip.ini 文件,内容如下:
        [global]
        index-url = https://pypi.tuna.tsinghua.edu.cn/simple
        trusted-host = pypi.tuna.tsinghua.edu.cn
        
      • Mac/Linux:在用户目录下创建或修改 ~/.pip/pip.conf 文件,内容同上。 设置好后,以后所有 pip install 命令都会从这个镜像源下载,体验极佳。

2.3 浏览器与驱动:版本匹配的“生死线”

这是环境搭建中最容易出错、也最核心的一环。Selenium库本身并不包含控制浏览器的能力,它需要通过一个名为“WebDriver”的中间件来与真实的浏览器(如Chrome, Firefox)通信。这个WebDriver就是浏览器驱动。

核心关系 :Selenium库 (代码) <---> 浏览器驱动 (WebDriver) <---> 真实浏览器 (Chrome)

驱动版本必须与浏览器版本高度匹配,否则Selenium无法启动浏览器。Chrome的驱动叫ChromeDriver,Firefox的驱动叫geckodriver。

以Chrome/ChromeDriver为例,详细操作如下:

  1. 查看Chrome浏览器版本

    • 打开Chrome浏览器,点击右上角三个点 -> 帮助 -> 关于Google Chrome。记下完整的版本号(例如:124.0.6367.91)。
  2. 下载对应版本的ChromeDriver

    • 官方渠道 :访问 ChromeDriver官网。这里你会看到很多版本。你需要下载的版本号 不一定 要完全一致,但主版本号 必须相同
    • 匹配规则 :如果你的Chrome是124.x.x.x,那么你需要下载主版本号为124的ChromeDriver(例如124.0.6367.x)。官网通常会有提示,说明某个ChromeDriver版本支持哪些Chrome浏览器版本。
    • 国内镜像 :官方下载可能很慢。你可以搜索“ChromeDriver 国内镜像”或使用淘宝的NPM镜像站,速度更快。
    • 选择文件 :根据你的操作系统下载对应的压缩包(Windows是 chromedriver_win32.zip ,Mac是 chromedriver_mac64.zip ,Linux是 chromedriver_linux64.zip )。
  3. 放置驱动并配置PATH

    • 解压 :下载的压缩包里只有一个可执行文件 chromedriver (Windows下是 chromedriver.exe )。
    • 放置位置(三种方法,推荐第一种)
      • 方法一(最简单) :将 chromedriver.exe 文件直接放到Python的安装目录下(或者Python安装目录下的 Scripts 文件夹里)。因为Python目录通常已经在系统的PATH环境变量中,这样Selenium就能自动找到它。
      • 方法二(灵活) :在电脑的任意位置(比如 D:\WebDriver )创建一个专门文件夹存放驱动。然后 将这个文件夹的路径添加到系统的PATH环境变量中 。具体添加PATH的方法因操作系统而异,这里不展开,网上教程很多。
      • 方法三(代码指定) :不修改PATH,而是在写Python代码时,通过 webdriver.Chrome(executable_path=‘你的驱动完整路径’) 来指定。但这种方法不够优雅,且Selenium 4以后更推荐自动管理驱动。
  4. 验证驱动 :打开命令行,切换到驱动所在目录,输入 chromedriver --version chromedriver.exe --version 。如果能看到版本号输出,说明驱动本身是可用的。

实操心得:浏览器会自动更新,但驱动不会。所以经常出现某天你的脚本突然跑不起来,提示“无法启动浏览器”的情况。这十有八九是Chrome自动升级后,驱动版本不匹配了。解决办法就是重新查看浏览器版本,下载对应的新驱动替换旧文件。养成定期检查的习惯,或者考虑使用后面会提到的 webdriver-manager 库来自动管理驱动版本。

3. 一站式环境搭建实战流程

理论讲完了,我们从头到尾实操一遍,确保你的环境100%可用。我会以Windows系统为例,Mac和Linux用户操作逻辑类似,主要是路径和命令的微小差别。

3.1 第一步:安装并验证Python

  1. 访问 python.org,下载 Python 3.10.x 或 3.11.x 的安装包。
  2. 运行安装程序,在第一个界面最下方, 务必勾选“Add python.exe to PATH” ,然后点击“Install Now”。
  3. 安装完成后, 重启你的命令行终端 (这是为了让新的环境变量生效)。
  4. 在新终端里输入:
    python --version
    
    pip --version
    
    两者都应正确显示版本号,无任何“不是内部或外部命令”的错误。

3.2 第二步:安装Selenium库

在终端中,使用国内镜像源快速安装:

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,可以进入Python交互模式简单验证:

python

在出现的 >>> 提示符后输入:

import selenium
print(selenium.__version__)

如果没有报错,并打印出版本号(如 4.15.2 ),说明库安装成功。输入 exit() 退出。

3.3 第三步:部署浏览器驱动(Chrome为例)

  1. 打开Chrome,确认版本为 124.0.6367.91(举例)。
  2. 打开 ChromeDriver下载页,找到主版本号为124的链接,点击进入。
  3. 根据你的系统,下载对应的 chromedriver_win32.zip 文件。
  4. 解压,得到 chromedriver.exe 文件。
  5. 找到你的Python安装目录。如果你安装时用了默认路径,通常在 C:\Users\你的用户名\AppData\Local\Programs\Python\Python310\ C:\Python310\ 。将 chromedriver.exe 复制 到这个目录下。
  6. 验证:打开一个新的命令行窗口(不需要在Python目录下),直接输入:
    chromedriver --version
    
    如果输出 ChromeDriver 124.0.6367.91 (...) 等信息,恭喜你,PATH配置成功!如果提示“找不到命令”,请检查是否复制到了正确的Python目录,并确认该目录已在PATH中(可以在终端输入 echo %PATH% 查看是否包含Python目录)。

3.4 第四步:编写并运行第一个验证脚本

现在,所有部件都已就位。让我们用一个最简单的脚本,打开百度首页,来验证整个环境是否工作。

创建一个新的文本文件,命名为 first_test.py ,用任何文本编辑器(推荐VSCode、Sublime Text、甚至记事本)打开,输入以下代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 1. 创建浏览器驱动对象。如果驱动在PATH中,无需指定路径。
driver = webdriver.Chrome()

# 2. 使用get方法打开百度
driver.get("https://www.baidu.com")

# 3. 通过元素定位找到搜索框,并输入“Selenium”
# 这里用到了By.ID定位方式,'kw'是百度搜索框的HTML元素id
search_box = driver.find_element(By.ID, 'kw')
search_box.send_keys('Selenium环境搭建')

# 4. 找到“百度一下”按钮并点击。'su'是该按钮的id
search_button = driver.find_element(By.ID, 'su')
search_button.click()

# 5. 等待5秒,让我们能看到结果
time.sleep(5)

# 6. 关闭浏览器窗口
driver.quit()

print("第一个Selenium脚本执行成功!浏览器已自动打开并操作。")

保存文件。在命令行中,切换到该文件所在的目录,运行:

python first_test.py

你将会看到

  1. 自动弹出一个新的Chrome浏览器窗口(可能会提示“Chrome正受到自动测试软件的控制”,这是正常的)。
  2. 浏览器自动导航到百度首页。
  3. 在搜索框中自动输入“Selenium环境搭建”。
  4. 自动点击“百度一下”按钮进行搜索。
  5. 等待5秒后,浏览器自动关闭。
  6. 命令行输出成功信息。

如果这一切都发生了,那么你的Selenium+Python自动化环境就 完美搭建成功 了!

4. 高级配置与效率提升技巧

基础环境搭好了,但作为想要长期做自动化的人,下面这些技巧能让你事半功倍,工作更顺畅。

4.1 使用WebDriver Manager告别版本烦恼

手动管理驱动版本太麻烦了。有一个神奇的Python库叫 webdriver-manager ,它可以自动检测你电脑上安装的浏览器版本,并下载、配置对应版本的驱动。

  1. 安装
    pip install webdriver-manager
    
  2. 修改你的脚本 :不再需要手动下载和配置PATH。
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from webdriver_manager.chrome import ChromeDriverManager
    from selenium.webdriver.chrome.service import Service
    
    # 使用Service对象和ChromeDriverManager
    service = Service(ChromeDriverManager().install())
    driver = webdriver.Chrome(service=service)
    
    driver.get("https://www.baidu.com")
    # ... 后续操作
    driver.quit()
    
    第一次运行时会自动下载驱动,以后就会检查版本并复用,彻底解放双手。同样支持Firefox ( GeckoDriverManager )、Edge等。

4.2 浏览器启动选项优化

默认启动的浏览器带有“受自动化控制”的提示,且不是全屏。我们可以通过 Options 对象进行优化。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--start-maximized')  # 启动时最大化窗口
chrome_options.add_argument('--disable-infobars') # 禁用“Chrome正受到自动测试软件的控制”提示(新版本可能无效)
chrome_options.add_argument('--no-sandbox')       # 在Linux环境下有时需要
chrome_options.add_argument('--disable-dev-shm-usage') # 解决Linux下共享内存问题
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation']) # 更高级的隐藏自动化特征
chrome_options.add_experimental_option('useAutomationExtension', False)

# 将options传入
driver = webdriver.Chrome(options=chrome_options)

这些选项能让你启动的浏览器更接近真实用户使用的状态,对于绕过一些简单的反爬机制也有帮助。

4.3 集成开发环境(IDE)配置

虽然用记事本也能写代码,但一个好的IDE能极大提升效率。 强烈推荐使用VSCode

  1. 安装VSCode
  2. 安装Python扩展 :在VSCode扩展商店搜索“Python”,安装Microsoft官方发布的那个。
  3. 配置Python解释器 :按 Ctrl+Shift+P ,输入“Python: Select Interpreter”,选择你安装的Python版本。
  4. 安装代码提示和格式化工具 :在VSCode的终端里,可以安装 pylint autopep8
    pip install pylint autopep8
    
    然后在VSCode设置中搜索“formatting”,确保Python的格式化工具是 autopep8 。这样你保存代码时就会自动格式化。
  5. 运行和调试 :在代码文件里点击右键,选择“Run Python File in Terminal”,或者使用调试功能设置断点,可以逐行查看代码执行和变量状态,对于调试Selenium脚本非常有用。

5. 环境搭建常见问题与排查实录

即使按照步骤来,也可能遇到各种“妖魔鬼怪”。这里我整理了最常见的问题和解决方法,基本能覆盖90%的情况。

5.1 浏览器驱动相关问题

问题1: selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH.

  • 原因 :系统找不到 chromedriver
  • 解决
    1. 确认 chromedriver.exe 已放在Python安装目录或已添加到PATH的目录。
    2. 在命令行任意路径输入 chromedriver --version 测试。如果失败,检查PATH。
    3. 或者,在代码中指定绝对路径(不推荐长期使用):
      driver = webdriver.Chrome(executable_path=r‘C:\path\to\your\chromedriver.exe’)
      
    4. 最佳实践 :直接使用 webdriver-manager 库。

问题2: session not created: This version of ChromeDriver only supports Chrome version XX

  • 原因 :ChromeDriver版本与Chrome浏览器版本不匹配。
  • 解决
    1. 检查Chrome浏览器版本。
    2. 去官网下载对应 主版本号相同 的ChromeDriver。
    3. 替换旧的驱动文件。
    4. 一劳永逸 :使用 webdriver-manager

问题3:浏览器闪退或无法启动

  • 原因
    • 浏览器正在运行中,且开启了用户数据目录(profile)的多个实例冲突。
    • 杀毒软件或防火墙拦截。
    • 驱动与浏览器位数不匹配(32位 vs 64位)。
  • 解决
    1. 关闭所有已打开的Chrome浏览器窗口。
    2. 在代码中尝试添加 --no-sandbox --disable-dev-shm-usage 参数(见4.2节)。
    3. 临时关闭杀毒软件试试。
    4. 确保下载的ChromeDriver位数与你的Chrome浏览器位数一致(现在基本都是64位)。

5.2 Python与Selenium库相关问题

问题4: ModuleNotFoundError: No module named ‘selenium’

  • 原因 :Selenium库没有安装,或者安装在了另一个Python环境下。
  • 解决
    1. 确认你运行脚本使用的Python和安装Selenium的Python是同一个。在命令行分别用 python --version pip --version 查看路径。
    2. 如果存在多个Python,使用 python -m pip install selenium 来确保为当前Python安装。
    3. 在VSCode中,检查右下角选择的Python解释器是否正确。

问题5: SyntaxError AttributeError ,提示 find_element_by_id 找不到

  • 原因 :你使用了Selenium 3的旧版API,但安装的是Selenium 4。Selenium 4中推荐使用新的 find_element(By.ID, “id”) 方式。
  • 解决 :按照本文3.4节的示例代码,导入 By 并使用新的定位方式。这是新旧版本最主要的区别之一。

5.3 网络与运行环境问题

问题6:脚本运行慢,或下载驱动、安装库超时

  • 原因 :网络连接国外服务器慢。
  • 解决
    • pip 配置国内镜像源(见2.2节)。
    • 对于 webdriver-manager ,它默认也会从国外下载。可以尝试在代码中设置环境变量,指向国内镜像(如果该镜像站提供驱动下载)。
    • 手动下载驱动并放置到指定目录,然后让 webdriver-manager 知道本地已有,避免下载。

问题7:在Linux服务器或无图形界面环境下运行失败

  • 原因 :Selenium需要启动一个真实的浏览器,而无图形界面(Headless)服务器没有显示设备。
  • 解决 :使用无头(Headless)模式。
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_argument('--headless') # 启用无头模式
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')
    
    driver = webdriver.Chrome(options=chrome_options)
    driver.get("https://www.baidu.com")
    print(driver.title) # 在终端打印页面标题,而不打开浏览器窗口
    driver.quit()
    
    这样,所有操作都在后台进行,非常适合服务器自动化。

环境搭建是自动化万里长征的第一步,也是最需要耐心和细心的一步。很多人在这一步被劝退,仅仅是因为一个驱动版本不对或者PATH没设置好。我希望通过这篇近万字的详细拆解,能帮你把这条路彻底铺平。记住,环境搭建的核心逻辑就是 “Python装好 -> 库管好 -> 驱动版本对得上” 。当你成功运行第一个脚本,看到浏览器自动弹开并操作时,那种成就感就是坚持下去的最大动力。接下来,你就可以深入去学习元素定位、等待机制、框架设计等更精彩的内容了。

更多推荐