使用Selenium调用ChromeDriver时提示无Chrome二进制文件的求助
解决方案
1. 先修正代码的逻辑错误
你的代码有两个致命问题:
- 初始化浏览器驱动之后才添加启动参数,等于白配置
- 新版本Selenium里
chrome_options参数已废弃,需改用options
修正后的代码:
from selenium import webdriver # 先初始化配置对象,把所有启动参数加在前面 options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') # 指定Chrome安装路径(先确认路径真实存在) options.binary_location = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" # 初始化驱动,用options传入配置 chrome_driver_binary = "/usr/local/bin/chromedriver" driver = webdriver.Chrome(executable_path=chrome_driver_binary, options=options)
2. 确认Chrome的路径是否正确
打开终端执行以下命令,验证路径是否存在文件:
ls "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
如果提示找不到文件,说明你安装的不是标准版Chrome,改成对应版本的路径:
- Chrome Beta测试版:
/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta - Chrome Canary金丝雀版:
/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary
3. 保证Chromedriver与Chrome版本完全匹配
- 打开Chrome,在地址栏输入
chrome://version/查看版本号(比如125.0.6422.112) - 下载对应大版本的Chromedriver(必须保证主版本号一致,如125.x驱动配125.x的Chrome)
- 将下载的Chromedriver放到
/usr/local/bin/目录,并赋予执行权限:
chmod +x /usr/local/bin/chromedriver
4. 简化配置(可选)
如果Chrome是默认安装的,无需手动指定binary_location,Selenium会自动查找路径,代码可简化为:
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') # 只要Chromedriver在系统PATH中,直接初始化即可 driver = webdriver.Chrome(options=options)
5. 排查权限问题
如果仍报错,可尝试用sudo运行脚本(仅用于排查权限问题,不建议长期使用):
sudo python3 你的脚本文件名.py
内容的提问来源于stack exchange,提问作者Samuel Hunter
相关产品推荐
相关产品推荐

