AWS EC2 Ubuntu环境下Selenium WebDriver启动失败求助
Selenium服务器端Chrome启动失败解决方案
以下是针对服务器端出现DevToolsActivePort file doesn't exist、Chrome异常退出问题的解决办法:
补充无界面运行必备参数
服务器端无桌面环境,需添加沙箱禁用、共享内存优化等参数,同时推荐使用新版headless模式提升稳定性:from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--headless=new') # 新版headless,兼容性更好 options.add_argument('--disable-gpu') options.add_argument('--no-sandbox') # 禁用沙箱,服务器环境强制要求 options.add_argument('--disable-dev-shm-usage') # 规避/dev/shm内存限制 options.add_argument('--remote-debugging-port=9222') # 指定调试端口,解决DevToolsActivePort缺失问题 driver = webdriver.Chrome(options=options)确保Chrome与ChromeDriver版本匹配
版本不兼容是常见诱因,可通过以下方式处理:- 查看服务器Chrome版本:执行
google-chrome --version - 手动下载对应版本的ChromeDriver并指定路径,或使用
webdriver-manager自动管理:
先安装依赖:pip install webdriver-manager
修改代码:from selenium import webdriver from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager options = Options() options.add_argument('--headless=new') options.add_argument('--disable-gpu') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
- 查看服务器Chrome版本:执行
调整目录权限
运行脚本的用户可能无权限访问Selenium缓存目录,执行以下命令修复:sudo chown -R ubuntu:ubuntu /home/ubuntu/.cache/selenium/ sudo chmod -R 755 /home/ubuntu/.cache/selenium/优化服务器内存配置
内存不足会导致Chrome启动失败,可通过以下方式处理:- 用
free -h查看内存使用情况,必要时升级服务器内存 - 添加Chrome参数减少内存占用:
options.add_argument('--memory-pressure-off') options.add_argument('--disable-features=VizDisplayCompositor')
- 用
内容的提问来源于stack exchange,提问作者user22403491
相关产品推荐
相关产品推荐

