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

AWS EC2 Ubuntu环境下Selenium调用Chrome报KeyError:'google-chrome'求助

解决AWS EC2 Ubuntu环境下Selenium代码的KeyError:'google-chrome'问题

需求目标

  • 解决两段Selenium代码均出现的KeyError:'google-chrome'错误
  • 运行环境:AWS EC2 Ubuntu实例
  • 用于基于Python、Selenium、BeautifulSoup的动态JS页面爬虫开发

代码示例

Selenium 3版本

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

Selenium 4版本

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

报错信息

[WDM] - ====== WebDriver manager ======
2022-07-11 15:49:01,250 INFO ====== WebDriver manager ======
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-18-0987a487086c> in <module>
      2 from webdriver_manager.chrome import ChromeDriverManager
      3 
----> 4 driver = webdriver.Chrome(ChromeDriverManager().install())

~/.local/lib/python3.8/site-packages/webdriver_manager/chrome.py in install(self)
     36 
     37     def install(self) -> str:
---&gt; 38         driver_path = self._get_driver_path(self.driver)
     39         os.chmod(driver_path, 0o755)
     40         return driver_path

~/.local/lib/python3.8/site-packages/webdriver_manager/core/manager.py in _get_driver_path(self, driver)
     27 
     28     def _get_driver_path(self, driver):
---&gt; 29         binary_path = self.driver_cache.find_driver(driver)
     30         if binary_path:
     31             return binary_path

~/.local/lib/python3.8/site-packages/webdriver_manager/core/driver_cache.py in find_driver(self, driver)
     93         os_type = driver.get_os_type()
     94         driver_name = driver.get_name()
---&gt; 95         driver_version = driver.get_version()
     96         browser_version = driver.browser_version
     97 

~/.local/lib/python3.8/site-packages/webdriver_manager/core/driver.py in get_version(self)
     41     def get_version(self):
     42         self._version = (
---&gt; 43             self.get_latest_release_version()
     44             if self._version == "latest"
     45             else self._version

~/.local/lib/python3.8/site-packages/webdriver_manager/drivers/chrome.py in get_latest_release_version(self)
     35 
     36     def get_latest_release_version(self):
---&gt; 37         self.browser_version = get_browser_version_from_os(self.chrome_type)
     38         log(f"Get LATEST {self._name} version for {self.browser_version} {self.chrome_type}")
     39         latest_release_url = (

~/.local/lib/python3.8/site-packages/webdriver_manager/core/utils.py in get_browser_version_from_os(browser_type)
    150         return get_browser_version(browser_type, metadata)
    151 
--&gt; 152     cmd_mapping = {
    153         ChromeType.BRAVE: {
    154             OSType.LINUX: linux_browser_apps_to_cmd(

KeyError: 'google-chrome'

已尝试的方法

  • Windows下Chromium源码运行报KeyError:'WINDOWSSDKDIR'的解决方案(不适用当前Ubuntu环境)
  • ChromeDriverManager安装报KeyError:'google-chrome'的相关方案
  • Selenium Wire相关Issue中的内容

解决方案

错误核心原因是Ubuntu实例中未安装Google Chrome浏览器,或WebDriver Manager无法检测到已安装的Chrome。具体解决步骤如下:

1. 安装Google Chrome浏览器

在AWS EC2 Ubuntu终端执行以下命令:

# 更新包列表
sudo apt update

# 安装依赖
sudo apt install -y wget gnupg2

# 添加Google Chrome官方源
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list

# 安装Google Chrome稳定版
sudo apt update && sudo apt install -y google-chrome-stable

2. 指定ChromeDriver版本(可选,跳过自动检测)

若安装Chrome后仍报错,可手动指定ChromeDriver版本:

Selenium 3修改后代码

# selenium 3 指定版本示例
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

# 替换为你安装的Chrome对应版本号,如"103.0.5060.134"
driver = webdriver.Chrome(ChromeDriverManager(version="103.0.5060.134").install())

Selenium 4修改后代码

# selenium 4 指定版本示例
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

# 替换为对应版本号
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager(version="103.0.5060.134").install()))

3. 无头模式运行(适配服务器无GUI环境)

AWS EC2为无GUI环境,需添加Chrome无头参数避免报错:

Selenium 4示例代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
options.add_argument('--headless=new')  # Selenium 4.10+推荐的无头模式
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()), options=options)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:54:17