2、测试环境搭建:Python环境配置、Selenium与WebDriver安装、浏览器驱动管理
说实话,环境搭建这事儿,看着简单,坑却不少。我见过太多同学卡在这一步,代码写好了,结果跑不起来——一查,原来是驱动版本不对。嗯,咱们今天就把这事儿一次性捋清楚。
2.1 Python环境配置
我个人习惯用Python 3.8+版本。为什么?因为Selenium 4.x对3.7以下的支持已经不太好了。你想想看,要是装了个老版本,后面还得折腾升级,何必呢?
第一步:下载Python
去官网 python.org 下载安装包。注意选对系统版本——Windows就选Windows installer,Mac就选macOS 64-bit。
第二步:安装时勾选关键选项
安装界面有个复选框:「Add Python to PATH」。一定要勾上!我曾经帮一个同事排查问题,搞了半天才发现他没勾这个,命令行里死活找不到python命令。
第三步:验证安装
打开终端(CMD或PowerShell),输入:
python --version
pip --version
如果看到版本号,说明安装成功。如果提示「不是内部或外部命令」,嗯,那就是PATH没配好。去系统环境变量里手动加一下Python的安装路径。
2.2 虚拟环境管理
这里我要多说一句:千万别把项目依赖直接装到全局Python里。为什么?因为不同项目可能依赖不同版本的库,装在一起会打架。我吃过这个亏——一个项目要Selenium 3.x,另一个要4.x,结果全局装了一个版本,另一个项目直接崩了。
推荐用 venv 或 virtualenv。Python 3.3以上自带venv,直接用就行:
# 创建虚拟环境
python -m venv oa_test_env
# 激活虚拟环境
# Windows:
oa_test_env\Scripts\activate
# Mac/Linux:
source oa_test_env/bin/activate
激活后,终端前面会出现 (oa_test_env) 字样。这时候你安装的所有包,都只在这个环境里生效。
requirements.txt 文件,把所有依赖写进去。这样换电脑或者给同事用,直接 pip install -r requirements.txt 就搞定了。
2.3 Selenium库安装
激活虚拟环境后,安装Selenium就一行命令:
pip install selenium
如果你想指定版本,比如装4.x的最新稳定版:
pip install selenium==4.15.0
安装完成后,验证一下:
pip show selenium
能看到版本号和安装路径,说明装好了。
2.4 WebDriver与浏览器驱动管理
这是最容易出问题的地方。说白了,Selenium本身不操作浏览器,它通过WebDriver来驱动浏览器。而WebDriver需要和浏览器版本匹配。
常见浏览器驱动下载地址:
| 浏览器 | 驱动名称 | 下载地址 |
|---|---|---|
| Chrome | chromedriver | https://chromedriver.chromium.org/ |
| Firefox | geckodriver | https://github.com/mozilla/geckodriver/releases |
| Edge | edgedriver | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
版本匹配原则:
驱动的主版本号要和浏览器一致。比如Chrome 120.x,就用chromedriver 120.x。差一个版本可能还能用,差两个版本基本就报错了。
🔑 核心要点: 查看浏览器版本的方法——Chrome浏览器地址栏输入 chrome://version/,就能看到完整版本号。然后去下载对应版本的驱动。
2.5 使用WebDriver Manager自动管理驱动
手动下载驱动太麻烦了。每次浏览器一更新,驱动就得重新下载。我推荐用 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)
# 打开OA系统登录页
driver.get("http://oa.example.com/login")
# 验证是否打开成功
assert "登录" in driver.title
print("浏览器启动成功!")
driver.quit()
你看,代码里完全不用操心驱动放哪了、版本对不对。WebDriver Manager全帮你搞定。
2.6 常见问题与避坑指南
问题1:驱动路径报错
报错信息类似 WebDriverException: Message: 'chromedriver' executable needs to be in PATH。
原因:Selenium找不到驱动文件。
解决办法:要么把驱动放到系统PATH里,要么在代码里指定路径。用WebDriver Manager的话,这问题就不存在了。
问题2:浏览器版本不匹配
报错信息类似 SessionNotCreatedException: This version of ChromeDriver only supports Chrome version 114。
原因:驱动版本和浏览器版本对不上。
解决办法:下载对应版本的驱动,或者直接用WebDriver Manager自动匹配。
问题3:浏览器启动后闪退
我曾经遇到过这种情况,查了半天发现是Chrome的沙箱模式导致的。加个参数就好了:
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(options=options)
--headless 参数,让浏览器在无界面模式下运行。不然会报错说找不到显示设备。
2.7 验证环境是否搭建成功
最后,写个简单的测试脚本,验证整个环境是否正常:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
def test_environment():
try:
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.get("https://www.baidu.com")
print("页面标题:", driver.title)
assert "百度" in driver.title
print("✅ 环境搭建成功!")
driver.quit()
except Exception as e:
print(f"❌ 环境搭建失败: {e}")
if __name__ == "__main__":
test_environment()
如果看到「环境搭建成功」的提示,恭喜你,可以开始写自动化测试用例了。
说实话,环境搭建这一步虽然繁琐,但一次配好,后面就省心了。我刚开始学的时候也在这上面花了不少时间,但后来发现,只要掌握了版本匹配的原则,再加上WebDriver Manager这个神器,基本不会再出问题。
下一章,咱们开始写第一个自动化测试用例——登录功能的测试。到时候这些配置就派上用场了。