MacOS下Python启动Firefox-Selenium提示文件找不到问题求助
解决MacOS下Selenium启动Firefox找不到文件的问题
这个问题我碰到过好多次了——本质是Selenium没法直接和Firefox通信,得靠GeckoDriver这个“中间件”,你只装了Firefox和Selenium,但系统找不到驱动文件,所以才会抛出找不到文件的报错。下面一步步给你解决:
1. 下载匹配版本的GeckoDriver
GeckoDriver的版本必须和你的Firefox版本兼容(新版Firefox对应新版GeckoDriver就行,一般不会有兼容问题):
- 去Mozilla官方提供的GeckoDriver下载页面,选择对应MacOS架构的压缩包(M1/M2芯片选arm64版本,Intel芯片选x64版本)
2. 配置GeckoDriver到系统PATH
解压下载的压缩包,会得到一个名为geckodriver的可执行文件,接下来把它放到系统默认能识别的路径里:
- 打开终端,进入解压后的文件目录(比如你下载到Downloads文件夹,就执行
cd ~/Downloads) - 执行命令把驱动移到
/usr/local/bin(这个目录默认在系统PATH里,全局可用):mv geckodriver /usr/local/bin/ - 给驱动添加执行权限(如果需要的话):
chmod +x /usr/local/bin/geckodriver
3. 验证驱动是否配置成功
在终端输入以下命令,如果能正常显示GeckoDriver的版本号,说明配置没问题:
geckodriver --version
4. 测试你的代码
现在再运行你原来的代码:
from selenium import webdriver browser = webdriver.Firefox()
应该就能正常启动Firefox浏览器了。
可选:不配置PATH,直接在代码里指定驱动路径
如果你不想把GeckoDriver放到系统PATH里,也可以在代码里直接指定驱动文件的路径:
from selenium import webdriver from selenium.webdriver.firefox.service import Service # 替换成你实际的geckodriver文件路径 service = Service('/Users/你的用户名/Downloads/geckodriver') browser = webdriver.Firefox(service=service)
注意事项
- 一定要确保GeckoDriver和Firefox版本兼容,如果启动还是报错,可以检查两者的版本对应关系
- M1/M2芯片的Mac别选错架构,否则驱动会无法运行
内容的提问来源于stack exchange,提问作者Mr. Blue
相关产品推荐
相关产品推荐

