AWS Cloud9中运行Selenium脚本报错:Chrome启动异常退出
解决AWS Cloud9中Chrome启动异常的问题
我之前在Cloud9环境里跑Selenium+Chrome也碰到过一模一样的问题,主要是因为Cloud9是*无头(无图形界面)*环境,加上Linux用户权限的限制,Chrome默认配置没法正常启动。给你几个关键的修复步骤:
1. 确认Chrome与Chromedriver版本完全匹配
版本不兼容是最常见的启动失败原因,先确保你的google-chrome和chromedriver版本一致。执行以下命令查看版本:
google-chrome --version /home/ec2-user/environment/downloads/chromedriver --version
如果版本不一致,下载对应版本的Chromedriver替换现有文件即可。
2. 给Chromedriver添加可执行权限
有时候下载的Chromedriver默认没有执行权限,导致无法调用,执行这个命令赋予权限:
chmod +x /home/ec2-user/environment/downloads/chromedriver
3. 修改Selenium配置,添加无头模式及必要参数
Cloud9没有图形界面,必须让Chrome以无头模式运行,同时还要关闭沙箱模式(Linux用户权限限制导致沙箱无法正常工作)。修改后的完整脚本如下:
from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.chrome.options import Options import requests options = Options() options.binary_location = '/usr/bin/google-chrome' # 启用无头模式(Cloud9环境必须配置) options.add_argument('--headless=new') # 禁用沙箱(解决权限引发的启动失败) options.add_argument('--no-sandbox') # 禁用/dev/shm使用,避免内存不足导致崩溃 options.add_argument('--disable-dev-shm-usage') # 禁用GPU(无头环境不需要图形加速) options.add_argument('--disable-gpu') # 设置窗口大小(确保页面渲染完整) options.add_argument('window-size=1920x1080') driver = webdriver.Chrome(options=options, executable_path='/home/ec2-user/environment/downloads/chromedriver') url = 'http://google.com' driver.get(url) soup = BeautifulSoup(driver.page_source, 'lxml') driver.quit() # 记得退出驱动,避免资源泄漏 print(soup)
额外检查:确保Chrome已正确安装
如果以上步骤仍未解决问题,先确认Chrome是否成功安装:
which google-chrome
如果没有输出,说明Chrome未安装,执行以下命令通过yum安装:
sudo yum install google-chrome-stable -y
按照这些步骤操作,应该就能正常启动Chrome并运行你的脚本了。
内容的提问来源于stack exchange,提问作者Vincent Nguyen
相关产品推荐
相关产品推荐

