未手动复制chromedriver.exe,Selenium-Python脚本仍运行,原因何在?
未手动复制chromedriver.exe,Selenium脚本仍能运行的原因
问题背景
我未手动复制chromedriver.exe,但Selenium-Python脚本仍能正常运行。然而安装步骤显示复制该文件是必需的,请问这在新版本中是否变为可选?若不是,脚本为何能正常运行?该驱动文件来自何处?
操作步骤
- 清理缓存(此前已删除旧PyCharm项目文件夹),操作系统为Windows 10
- 安装Python 3.11.3
- 安装PyCharm社区版2023.1.3(版本号231.9161.41)
- 启动PyCharm终端,自动显示
(env)提示符 - 在终端执行
pip install selenium,安装成功 - 关闭并重新启动PyCharm
- 运行以下Selenium-Python脚本,执行成功:
import time from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.google.com/") time.sleep(5) driver.close()
解答
从Selenium 4.6.0版本开始,官方新增了自动驱动管理功能,彻底省去了手动下载、配置浏览器驱动的步骤。
当你运行webdriver.Chrome()时,Selenium会自动完成以下操作:
- 检测本地Chrome浏览器的版本
- 检查系统缓存目录(Windows下默认是
%USERPROFILE%\.cache\selenium)是否有匹配版本的chromedriver - 如果没有匹配的驱动,会自动从官方源下载对应版本的驱动到缓存目录
- 调用缓存里的驱动启动浏览器
之前的旧版Selenium确实要求手动下载驱动,要么把驱动放到Python的Scripts目录,要么在代码里指定驱动路径,或者配置系统环境变量。但新版本的自动管理功能默认启用,完全替代了手动操作,所以你没复制驱动文件也能正常运行脚本。
内容的提问来源于stack exchange,提问作者Narendra Bhagwat
相关产品推荐
相关产品推荐

