第2章:环境搭建——Python环境、Selenium库安装、浏览器驱动配置
说实话,很多同学学浏览器自动化,第一个拦路虎不是代码本身,而是环境搭建。我见过太多人卡在这一步,折腾一整天连个浏览器都打不开。别急,跟着我来,一步步搞定。
2.1 Python环境:选对版本,少走弯路
我个人习惯用Python 3.8到3.11之间的版本。为什么?因为Selenium对最新版Python的支持有时候会慢半拍。我在项目中遇到过Python 3.12刚发布时,某些第三方库还没适配,折腾了半天才发现是版本问题。
下载安装步骤:
- 去Python官网(python.org)下载安装包
- 安装时记得勾选「Add Python to PATH」——这个很重要,我一开始就忘了勾,后面命令行里死活找不到python命令
- 安装完成后,打开命令行(CMD或终端),输入:
python --version
如果显示版本号,说明安装成功。如果提示「不是内部或外部命令」,嗯,那就是PATH没配好,重新安装一遍,勾上那个选项就行。
python -m venv myenv
myenv\Scripts\activate # Windows
source myenv/bin/activate # Mac/Linux
2.2 Selenium库安装:一行命令搞定
Python环境配好后,安装Selenium就简单了。打开命令行,输入:
pip install selenium
等等,如果你用的是Python 3,可能需要用pip3:
pip3 install selenium
为什么会这样?因为有些电脑上同时装了Python 2和Python 3,pip默认指向Python 2。你想想看,要是装错了版本,后面代码跑起来全是坑。
安装完成后,验证一下:
pip show selenium
能看到版本信息就对了。我目前用的是Selenium 4.x版本,相比3.x改了不少API,但核心用法差不多。
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
2.3 浏览器驱动配置:ChromeDriver与GeckoDriver
这是最容易出问题的一步。说白了,Selenium是通过浏览器驱动来操控浏览器的。你装好了Selenium,但没装驱动,浏览器照样打不开。
2.3.1 ChromeDriver(对应Chrome浏览器)
步骤:
- 先查看你Chrome浏览器的版本。打开Chrome,地址栏输入
chrome://version/,看到版本号,比如「120.0.6099.109」 - 去ChromeDriver官网(chromedriver.chromium.org)下载对应版本的驱动
- 下载后解压,得到一个chromedriver.exe(Windows)或chromedriver(Mac/Linux)
- 把这个文件放到Python的Scripts目录下,或者放到你的项目目录里
我个人习惯把驱动放到项目根目录,然后在代码里指定路径:
from selenium import webdriver
driver = webdriver.Chrome(executable_path='./chromedriver')
不过Selenium 4.x之后,如果你把chromedriver放到了PATH环境变量里,可以直接这样写:
driver = webdriver.Chrome()
2.3.2 GeckoDriver(对应Firefox浏览器)
如果你用Firefox,那就需要GeckoDriver。步骤类似:
- 去GitHub的mozilla/geckodriver页面下载对应系统的版本
- 解压后放到PATH路径下,或者项目目录里
- 代码里这样用:
driver = webdriver.Firefox(executable_path='./geckodriver')
我个人其实更推荐用Chrome,因为Chrome的开发者工具更强大,调试起来方便。但如果你要做跨浏览器测试,那Firefox也得配好。
2.4 验证环境:写个简单脚本试试
环境都配好了?来,写个最简单的脚本验证一下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
print(driver.title)
driver.quit()
如果运行后能打开百度,并且打印出「百度一下,你就知道」,那恭喜你,环境搭建成功了!
| 报错信息 | 原因 | 解决方法 |
|---|---|---|
| WebDriverException: Message: 'chromedriver' executable needs to be in PATH | 驱动没放到PATH里 | 把驱动放到Scripts目录,或指定executable_path |
| SessionNotCreatedException: This version of ChromeDriver only supports Chrome version xx | 驱动版本和浏览器不匹配 | 下载对应版本的驱动 |
| ModuleNotFoundError: No module named 'selenium' | Selenium没安装或装错了环境 | 检查pip list,确认安装成功 |
2.5 我的建议:一次配好,一劳永逸
环境搭建这东西,说白了就是一次性的工作。配好了,后面几十章都能用。我建议你把驱动文件统一放到一个文件夹里,比如 C:\webdrivers,然后把这个路径加到系统环境变量PATH里。这样不管你在哪个项目里写代码,都不用再操心驱动路径的问题。
嗯,这一章就到这儿。环境搭好了,下一章我们就可以真正开始写自动化脚本了。到时候你会发现,前面这些折腾都是值得的。