EC2 Ubuntu实例中Selenium启动Chrome异常问题求助
解决Chrome启动失败(DevToolsActivePort不存在)问题
核心修复:传递Chrome配置参数
你的代码已定义chrome_options但未传递给WebDriver实例,导致headless等关键参数未生效,这是引发错误的主要原因。修改代码如下:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from webdriver_manager.chrome import ChromeDriverManager chrome_options = Options() chrome_options.add_argument('--headless=new') # 推荐使用新版headless模式 chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--remote-debugging-port=9222') # 显式指定调试端口 chrome_options.add_argument('--disable-gpu') # 禁用GPU加速(headless环境无需) # 关键:将chrome_options传入WebDriver构造函数 driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) driver.get("https://hagadmansa.com") driver.set_window_size(1300, 500) driver.save_screenshot("a.png") driver.quit() print("Done")
额外排查步骤
若上述修改后仍报错,执行以下操作:
- 安装Chrome缺失的系统依赖
在Ubuntu终端运行:
sudo apt update && sudo apt install -y libxss1 libappindicator3-1 fonts-liberation libasound2 libnss3
- 确认Chrome与ChromeDriver版本匹配
运行google-chrome --version查看Chrome版本,若版本不兼容,可指定ChromeDriver版本安装:
# 示例:指定ChromeDriver版本为114.0.5735.90 driver = webdriver.Chrome(ChromeDriverManager(version="114.0.5735.90").install(), options=chrome_options)
- 检查文件权限
确保运行代码的用户对/tmp目录有读写权限:
sudo chmod 777 /tmp
内容的提问来源于stack exchange,提问作者Himanshu Rastogi
相关产品推荐
相关产品推荐

