VPS部署Selenium遇Chrome启动异常问题求助
解决VPS上Selenium Chrome启动失败的问题
核心问题分析
报错提示DevToolsActivePort file doesn't exist和Chrome异常退出,本质是VPS无桌面环境下Chrome启动参数不全、依赖缺失或版本不匹配导致。
具体解决步骤
1. 补充完整的Chrome启动参数
替换现有配置,使用更适配无头环境的参数:
from selenium.webdriver.chrome.options import Options chrome_options = Options() # 启用新版无头模式,兼容性更强 chrome_options.add_argument("--headless=new") # 禁用沙箱机制,VPS非root用户必备 chrome_options.add_argument("--no-sandbox") # 解决/dev/shm空间不足问题 chrome_options.add_argument("--disable-dev-shm-usage") # 禁用GPU加速,无头环境不需要 chrome_options.add_argument("--disable-gpu") # 指定窗口大小,避免页面布局异常 chrome_options.add_argument("--window-size=1920,1080") # 显式指定调试端口,避免端口冲突 chrome_options.add_argument("--remote-debugging-port=9222") # 可选:如果Chrome路径不明确,手动指定 chrome_options.binary_location = "/usr/bin/google-chrome" driver = webdriver.Chrome(service=s, options=chrome_options)
2. 确保Chrome与ChromeDriver版本完全匹配
- 执行命令查看VPS上Chrome版本:
google-chrome --version - 下载对应版本的ChromeDriver,替换当前使用的驱动文件,保证主版本号一致(比如Chrome 120.x对应ChromeDriver 120.x)。
3. 安装Chrome运行依赖库
根据VPS的系统类型执行对应命令:
- Debian/Ubuntu系统:
apt-get update && apt-get install -y libnss3 libgconf-2-4 libxss1 libappindicator1 libindicator7 libasound2 libatk-bridge2.0-0 libgtk-3-0 - CentOS/RHEL系统:
yum install -y libX11 libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender libXtst cups-libs libXScrnSaver libXcomposite alsa-lib atk gtk3
4. 检查运行权限
- 尽量避免用root用户运行脚本,创建普通用户执行更稳定;
- 如果必须用root用户,需额外添加参数:
chrome_options.add_argument("--disable-setuid-sandbox")
内容的提问来源于stack exchange,提问作者Lalit mahato
相关产品推荐
相关产品推荐

