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
安装完成后,验证一下:
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://version,第一行就是版本号。
配置方式
有两种常见配置方式:
- 手动配置:下载驱动后,放到Python安装目录或项目目录下,然后在代码中指定路径
- 自动管理:用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
环境搭建这块,说白了就是一次性的工作。搭好了,后面写脚本就顺畅了。我建议你把每一步都验证通过再往下走,别一口气装完才发现有问题——到时候排查起来反而更费时间。