第3章:Python + Selenium 环境搭建

好,咱们开始动手了。这一章我带你把 Python 和 Selenium 的环境搭起来,再跑第一个脚本。说实话,环境搭建这块坑不少,我当年刚入行时在这上面浪费了大半天。你跟着我的步骤来,十分钟搞定。

3.1 Python 环境配置

先确认你的电脑上有没有 Python。打开命令行(Windows 按 Win+R,输入 cmd;Mac 直接开终端),敲这个命令:

python --version

如果看到类似 Python 3.8.10 这样的输出,恭喜你,已经有了。如果提示「不是内部或外部命令」,那就得装一个。

注意: 一定要装 Python 3.7 以上版本。Python 2.7 已经停止维护了,别用。

下载安装步骤:

  1. 去官网 python.org 下载对应系统的安装包
  2. 安装时 务必勾选「Add Python to PATH」—— 我见过太多人忘了这一步,后面 pip 命令全报错
  3. 安装完成后,重启命令行,再验证一次版本

我个人习惯用 python3 而不是 python,因为 Mac 和 Linux 上这两个命令有时指向不同版本。你可以在命令行里试试:

python3 --version

如果两个命令都能用,那就选一个你顺手的,后面统一用。

3.2 pip 与虚拟环境

Python 装好之后,pip 一般就自带了。验证一下:

pip --version

嗯,这里要注意:如果你同时装了 Python 2 和 Python 3,可能会遇到 pip 指向混乱的问题。我建议用 pip3 来确保用的是 Python 3 的包管理器。

我的习惯: 每个项目都建一个虚拟环境。这样不同项目的依赖不会打架。命令很简单:
python -m venv selenium_env
.\selenium_env\Scripts\activate  # Windows
source selenium_env/bin/activate  # Mac/Linux
看到命令行前面多了 (selenium_env) 就说明激活成功了。

3.3 Selenium 库安装

环境激活后,直接一行命令搞定:

pip install selenium

等进度条跑完,验证一下:

pip list | grep selenium

如果看到 selenium 4.x.x 就说明装好了。目前 Selenium 已经到 4.x 版本了,和 3.x 有些 API 变化,我建议直接用最新的。

我曾经遇到过一个问题:在公司内网环境里,pip 连不上外网。解决办法是用国内镜像源:

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

清华的源速度不错,中科大、阿里云的也行。你挑一个离你近的。

3.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 就要用 ChromeDriver 120.x。版本不对的话,启动时会直接报错 session not created。我踩过这个坑,折腾了半小时才发现是版本没对上。

下载后把驱动放到一个方便的位置,比如 C:\webdrivers\,然后把这个路径加到系统环境变量 PATH 里。或者更简单的方法:直接把驱动文件放到 Python 的安装目录下(和 python.exe 同目录)。

3.5 第一个自动化脚本:打开百度

环境都准备好了,咱们写第一个脚本。新建一个文件,叫 first_script.py,输入以下代码:

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

# 指定驱动路径(如果已加入PATH,可以省略这行)
service = Service(r'C:\webdrivers\chromedriver.exe')

# 创建浏览器对象
driver = webdriver.Chrome(service=service)

# 打开百度
driver.get('https://www.baidu.com')

# 等3秒,让你看看效果
time.sleep(3)

# 打印页面标题
print('页面标题是:', driver.title)

# 关闭浏览器
driver.quit()

运行它:

python first_script.py

如果一切顺利,你会看到 Chrome 自动打开,跳转到百度首页,3秒后自动关闭。控制台会打印出「页面标题是:百度一下,你就知道」。

为什么会这样? 代码的逻辑其实很简单:
  • webdriver.Chrome() 启动浏览器
  • get() 方法导航到指定 URL
  • title 属性获取当前页面的标题
  • quit() 关闭浏览器并释放资源

3.6 常见问题与避坑指南

我第一次跑这个脚本时,遇到了好几个问题。分享给你,省得你走弯路:

  • 「chromedriver.exe 无法访问」 —— 路径写错了,或者驱动文件权限不够。检查路径,或者把驱动放到项目目录下用相对路径。
  • 「session not created」 —— 驱动版本和浏览器版本不匹配。去下载对应版本。
  • 浏览器一闪而过 —— 没加 time.sleep() 或者 input(),脚本执行完就自动关了。调试时可以加个等待。
  • Mac/Linux 上报错 —— 驱动文件需要执行权限。运行 chmod +x chromedriver 解决。
一个小技巧: 如果你不想每次启动都看到浏览器界面(比如在服务器上跑),可以加无头模式:
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(service=service, options=options)
这样浏览器会在后台运行,不弹出窗口。调试时建议先关掉无头模式,能看到每一步发生了什么。

3.7 本章小结

到这,你的 Python + Selenium 环境就搭好了。我们做了三件事:

  1. 安装了 Python 3 并配置了 PATH
  2. 用 pip 安装了 Selenium 库
  3. 下载了浏览器驱动并跑通了第一个脚本

下一章咱们开始写真正的自动化测试用例。你会学到如何定位元素、模拟点击和输入。嗯,那才是自动化测试的核心。先把环境玩熟,后面就顺了。