2. 测试环境搭建:Python环境安装、Selenium库安装、WebDriver配置与浏览器驱动

说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学卡在这一步,代码写好了,结果跑不起来——一查,原来是驱动版本没对上。嗯,咱们一步步来,把这事儿捋清楚。

2.1 Python环境安装

Python是自动化测试的基石。我个人习惯用Python 3.8以上版本,太老的版本有些库不支持,太新的又可能跟某些框架有兼容问题。3.9或3.10是比较稳妥的选择。

下载与安装

  • 去Python官网(python.org)下载对应操作系统的安装包
  • Windows用户记得勾选「Add Python to PATH」——这个我吃过亏,忘了勾选,后面命令行里死活找不到python命令
  • macOS用户建议用Homebrew安装:brew install python@3.10
  • Linux用户直接用包管理器:sudo apt install python3.10
小技巧:安装完后,在终端输入 python --version 验证一下。如果显示的不是你安装的版本,八成是PATH没配好。

虚拟环境

我强烈建议每个项目都建一个独立的虚拟环境。为什么?你想想看,不同项目依赖的库版本可能不一样,混在一起迟早要出问题。我曾经在一个项目里升级了某个库,结果另一个项目直接崩了——从那以后,虚拟环境就成了我的标配。

# 创建虚拟环境
python -m venv selenium_env

# 激活虚拟环境
# Windows:
selenium_env\Scripts\activate
# macOS/Linux:
source selenium_env/bin/activate

2.2 Selenium库安装

Selenium是自动化测试的核心库。说白了,它就是帮我们操控浏览器的工具。安装方式很简单,一行命令搞定:

pip install selenium

如果你网络不太好,可以换成国内镜像源:

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
注意:Selenium 4.x版本跟3.x有一些API变化。如果你用的是老教程,记得检查一下版本。我个人建议直接用最新的4.x,功能更全,写法也更简洁。

安装完成后,验证一下:

python -c "import selenium; print(selenium.__version__)"

如果能正常输出版本号,说明安装成功了。

2.3 WebDriver配置与浏览器驱动

这是最容易出问题的一步。Selenium本身不操控浏览器,它需要通过WebDriver来跟浏览器通信。每个浏览器都有自己的驱动,版本必须严格对应。

支持的浏览器

浏览器 驱动名称 下载地址
Chrome ChromeDriver chromedriver.chromium.org
Firefox GeckoDriver github.com/mozilla/geckodriver
Edge EdgeDriver developer.microsoft.com/en-us/microsoft-edge/tools/webdriver

驱动版本匹配

这里有个关键点:驱动的主版本号必须跟浏览器一致。比如你用的是Chrome 120,那就得下载ChromeDriver 120.x.x。差一个版本都不行。

我曾经帮一个同事排查问题,他折腾了两小时,代码就是跑不起来。最后发现他装的是Chrome 118,驱动却是Chrome 120的——嗯,这种低级错误,谁还没犯过呢?

避坑指南:不要直接下载最新版的驱动!先看看你的浏览器版本。查看方法:Chrome浏览器地址栏输入 chrome://version,第一行就是版本号。

配置方式

有两种常见配置方式:

  1. 手动配置:下载驱动后,放到Python安装目录或项目目录下,然后在代码中指定路径
  2. 自动管理:用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)

# 打开一个网页试试
driver.get("https://www.baidu.com")
print("页面标题:", driver.title)

# 记得关闭浏览器
driver.quit()

你看,这样就不用手动下载驱动、不用操心版本匹配问题了。webdriver-manager会自动检测你的浏览器版本,然后下载对应的驱动。

2.4 验证环境是否搭建成功

环境搭好了,跑个简单的测试脚本验证一下:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

# 配置驱动
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

try:
    # 访问百度
    driver.get("https://www.baidu.com")
    
    # 等待页面加载
    time.sleep(2)
    
    # 获取页面标题
    title = driver.title
    print(f"页面标题: {title}")
    
    # 断言标题包含"百度"
    assert "百度" in title, "标题不包含'百度',环境可能有问题"
    
    print("环境搭建成功!自动化测试脚本可以正常运行。")
    
except Exception as e:
    print(f"环境验证失败: {e}")
    
finally:
    driver.quit()
提示:如果脚本能正常打开浏览器并打印出页面标题,恭喜你,环境搭建成功了!如果报错,别慌,多半是驱动版本问题,检查一下浏览器和驱动的版本是否匹配。

2.5 常见问题与解决方案

  • 「chromedriver」可执行文件不在PATH中——要么手动配置路径,要么用webdriver-manager自动管理
  • SessionNotCreatedException——驱动版本跟浏览器不匹配,去下载对应版本
  • 浏览器一闪而过——代码执行太快,加个time.sleep()或者用显式等待
  • pip安装超时——换国内镜像源,或者用VPN

环境搭建这块,说白了就是一次性的工作。搭好了,后面写脚本就顺畅了。我建议你把每一步都验证通过再往下走,别一口气装完才发现有问题——到时候排查起来反而更费时间。