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命令。

⚠️ 注意: 如果你用的是Windows,安装路径里不要有中文或空格。我之前遇到过因为用户名是中文,导致pip安装包报错的案例。

第三步:验证安装

打开终端(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全帮你搞定。

💡 个人经验: 我第一次用这个库的时候,还担心它会不会下错版本。试了几次发现,它连Chrome的Beta版都能识别。后来我就再也没手动下载过驱动了。

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)
⚠️ 注意: 如果你在服务器或Docker容器里跑自动化测试,记得加上 --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这个神器,基本不会再出问题。

下一章,咱们开始写第一个自动化测试用例——登录功能的测试。到时候这些配置就派上用场了。