如何通过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
相关产品推荐
相关产品推荐

