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

EC2实例中Google Chrome无法启动,Selenium脚本执行报错

解决EC2实例中Selenium Chrome无头模式启动崩溃问题

已在EC2实例安装对应版本的Google Chrome(109.0.5414.119)、ChromeDriver(109.0.5414.74)和Selenium(4.8.0),运行以下Python脚本时出现启动崩溃错误:

from selenium import webdriver

service = webdriver.chrome.service.Service('/usr/bin/chromedriver')
service.start()
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options = options.to_capabilities()
driver = webdriver.Remote(service.service_url, options)

driver.get("https://www.google.com")

报错信息(已翻译为中文):

raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome启动失败:已崩溃。
            (unknown error: DevToolsActivePort文件不存在) 
(从路径/usr/bin/google-chrome启动的进程已不再运行,因此ChromeDriver判定Chrome已崩溃。) 
Stacktrace: 
#0 0x55cd3bfbd303 <unknown> 
#1 0x55cd3bd91d37 <unknown> 
#2 0x55cd3bdba157 <unknown> 
#3 0x55cd3bdb6330 <unknown> 
#4 0x55cd3bdf74a6 <unknown> 
#5 0x55cd3bdee753 <unknown> 
#6 0x55cd3bdc1a14 <unknown> 
#7 0x55cd3bdc2b7e <unknown> 
#8 0x55cd3c00c32e <unknown> 
#9 0x55cd3c00fc0e <unknown> 
#10 0x55cd3bff2610 <unknown> 
#11 0x55cd3c010c23 <unknown> 
#12 0x55cd3bfe4545 <unknown> 
#13 0x55cd3c0316a8 <unknown> 
#14 0x55cd3c031836 <unknown> 
#15 0x55cd3c04cd13 <unknown> 
#16 0x7f0f6b23e44b start_thread

问题原因

EC2实例属于无图形界面的服务器环境,无头模式下Chrome需要额外参数适配环境,缺少关键参数会导致启动崩溃、DevToolsActivePort文件无法生成。

修复方案

修改ChromeOptions添加必要参数,并优化Selenium 4+的代码写法:

修复后的代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = Service('/usr/bin/chromedriver')
options = webdriver.ChromeOptions()

# 添加适配EC2环境的核心参数
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')  # 指定调试端口,解决DevToolsActivePort问题

# 直接初始化ChromeDriver,无需手动启动Service再调用Remote
driver = webdriver.Chrome(service=service, options=options)

driver.get("https://www.google.com")
print(driver.title)  # 验证页面是否成功加载
driver.quit()  # 执行完毕后关闭浏览器

额外检查项

  1. 确认Chrome与ChromeDriver版本完全匹配(当前版本兼容,但需避免多版本冲突)
  2. 运行脚本的用户对/usr/bin/chromedriver和/usr/bin/google-chrome拥有执行权限
  3. 若使用Amazon Linux 2等系统,需安装Chrome依赖库:
    yum install -y libX11 libXext libXtst
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:41:04