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

如何通过SSH在云服务器上运行Selenium WebDriver(无头模式报错)

远程服务器无头模式运行Selenium失败问题

尝试在远程服务器上以无头模式运行Selenium,执行以下代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.headless = True
browser = webdriver.Chrome(options=options)

出现报错:

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: 
Chrome failed to start: exited normally.
  (session not created: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running,
 so ChromeDriver is assuming that Chrome has crashed.)

Stacktrace:
#0 0x55fd03b17fb3 <unknown>
#1 0x55fd037eb4a7 <unknown>
#2 0x55fd0381ec93 <unknown>
#3 0x55fd0381b10c <unknown>
#4 0x55fd0385dac6 <unknown>
#5 0x55fd03854713 <unknown>
#6 0x55fd0382718b <unknown>
#7 0x55fd03827f7e <unknown>
#8 0x55fd03add8d8 <unknown>
#9 0x55fd03ae1800 <unknown>
#10 0x55fd03aebcfc <unknown>
#11 0x55fd03ae2418 <unknown>
#12 0x55fd03aaf42f <unknown>
#13 0x55fd03b064e8 <unknown>
#14 0x55fd03b066b4 <unknown>
#15 0x55fd03b17143 <unknown>
#16 0x7f142b4ffac3 <unknown>

已尝试使用pyvirtualdisplay,但仍出现相同报错。

版本信息:

  • selenium版本:4.14.0
  • Chrome版本:Google Chrome 118.0.5993.117

解决方案

1. 补充Chrome无头模式必要参数

远程服务器环境下仅设置headless=True不足以启动,需添加额外参数规避DevToolsActivePort问题:

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

options = Options()
options.add_argument("--headless=new")  # Selenium 4.8+推荐的新无头模式
options.add_argument("--no-sandbox")    # 禁用沙箱模式,服务器环境必备
options.add_argument("--disable-dev-shm-usage")  # 避免/dev/shm内存不足
options.add_argument("--remote-debugging-port=9222")  # 指定调试端口
options.add_argument("--disable-gpu")  # 禁用GPU渲染

browser = webdriver.Chrome(options=options)

2. 检查ChromeDriver版本匹配

确保ChromeDriver版本与Chrome主版本号完全一致,可通过以下命令查看ChromeDriver版本:

chromedriver --version

若版本不匹配,下载对应版本的ChromeDriver替换即可。

3. 手动指定Chrome可执行路径

如果服务器上Chrome安装路径非默认的/usr/bin/google-chrome,需手动指定:

options.binary_location = "/path/to/google-chrome"

4. 权限与依赖检查

  • 确保运行脚本的用户拥有Chrome和ChromeDriver的执行权限
  • 安装Chrome依赖库(以Ubuntu为例):
sudo apt-get install -y libxss1 libappindicator1 libindicator7

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:37:32