You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web服务器部署Selenium爬虫报错:'chromedriver'需在PATH中

解决服务器上Selenium驱动无法找到的问题

看起来你已经尝试了常规的PATH配置,但还是遇到了问题,我给你几个针对性的排查和解决步骤,应该能帮你搞定:

1. 先检查驱动文件的执行权限

服务器上的驱动文件经常会因为没有可执行权限导致报错,这是很容易漏掉的点。你可以通过终端给驱动加上执行权限:

# 给你的chromedriver加权限
chmod +x /home/animalsp/public_html/maps/maps2/chromedriver
# 如果你把驱动放到了/usr/local/bin,也要给那里的文件加权限
chmod +x /usr/local/bin/chromedriver
# Firefox的geckodriver同理
chmod +x /home/animalsp/public_html/maps/maps2/geckodriver

2. 确认驱动与浏览器的版本兼容性

你提到的chromedriver版本是2.3.8,这大概率是笔误——Chrome 66.0对应的正确chromedriver版本应该是2.38(少了个小数点)。版本不兼容会直接导致驱动无法启动,你可以先验证下当前驱动的版本:

/home/animalsp/public_html/maps/maps2/chromedriver --version

如果版本不对,下载对应Chrome 66的chromedriver(2.38版本)替换现有文件即可。

至于Firefox 60和geckodriver 0.20.1是兼容的,但同样要确保geckodriver有执行权限。

3. 验证路径正确性与运行用户权限

  • 首先,你可以在脚本里加几行代码,确认驱动路径是否存在、是否有执行权限:
import os
CHROMEDRIVER_PATH = "/home/animalsp/public_html/maps/maps2/chromedriver"
print("路径是否存在:", os.path.exists(CHROMEDRIVER_PATH))
print("是否有执行权限:", os.access(CHROMEDRIVER_PATH, os.X_OK))

如果输出是False,说明要么路径写错了,要么运行脚本的用户没有访问该路径的权限。

  • 另外,要注意脚本运行的用户(比如web服务器的运行用户,如apache、nginx)是否有权限访问/home/animalsp/public_html/maps/maps2/目录,必要时调整目录权限:
chmod +rx /home/animalsp/public_html/maps/maps2/

4. 调整Selenium初始化参数(适配旧版本)

你用的是Selenium 3.12.0,这个版本里chrome_options和firefox_options参数已经被标记为弃用,建议改用options参数,避免潜在的兼容性问题:

Chrome版本修改后代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

CHROMEDRIVER_PATH = "/home/animalsp/public_html/maps/maps2/chromedriver"
WINDOW_SIZE ="1920,1080"
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=%s" % WINDOW_SIZE)
# 改用options参数
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=chrome_options)
driver.get("https://na.chargepoint.com/charge_point")

Firefox版本修改后代码:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

FIREFOXDRIVER_PATH ="/home/animalsp/public_html/maps/maps2/geckodriver"
WINDOW_SIZE ="1920,1080"
firefox_options = Options()
firefox_options.add_argument("--headless")
firefox_options.add_argument("--window-size=%s" % WINDOW_SIZE)
# 改用options参数
driver = webdriver.Firefox(executable_path=FIREFOXDRIVER_PATH, options=firefox_options)
driver.get("https://na.chargepoint.com/charge_point")

5. 检查服务器上的浏览器是否能正常启动

有时候问题出在浏览器本身,你可以在服务器终端尝试直接启动无头浏览器,验证是否能正常运行:

# 测试Chrome
google-chrome --headless --disable-gpu --window-size=1920,1080 https://na.chargepoint.com/charge_point
# 测试Firefox
firefox --headless --window-size=1920,1080 https://na.chargepoint.com/charge_point

如果浏览器启动失败,说明服务器上的浏览器缺少依赖库,比如Ubuntu系统可以安装这些依赖:

# Chrome依赖
sudo apt-get install libnss3 libgconf-2-4 libxss1 libappindicator1 libindicator7
# Firefox依赖
sudo apt-get install libdbus-glib-1-2 libgtk-3-0

先按照这些步骤排查,应该能定位并解决你的问题。

内容的提问来源于stack exchange,提问作者Eunice TT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:24:37