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

在Colab中运行Selenium+ChromeDriver报错,求解决方案

解决Colab中Selenium ChromeDriver启动异常问题

问题核心诊断

你遇到的错误源于几个低级细节问题:

  • 驱动路径缺失开头的斜杠(usr/bin/chromedriver → /usr/bin/chromedriver)
  • 错误地将options传递给了ChromeService对象
  • 未明确指定Chrome二进制文件路径(Colab环境下需要显式声明)
  • 手动安装的ChromeDriver可能与Chromium版本不兼容

修正后的手动安装版本代码

!pip install selenium 
!pip install webdriver_manager
!apt-get update 
!apt-get install -y chromium-browser 
!apt-get install -y chromium-chromedriver

# 复制驱动到系统路径,避免权限或路径问题
!cp /usr/lib/chromium-browser/chromedriver /usr/bin

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

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_experimental_option("detach", True)
options.add_experimental_option("excludeSwitches", ["enable-automation"])
# 明确指定Chromium二进制文件路径
options.binary_location = '/usr/bin/chromium-browser'

# 修正驱动路径,注意开头的斜杠
driver_path = '/usr/bin/chromedriver'
serv = Service(driver_path)
chrome = webdriver.Chrome(service=serv, options=options)

# 测试是否正常启动
chrome.get('https://google.com')
print(chrome.title)

更简洁的webdriver_manager自动适配版本

用webdriver_manager可以自动匹配ChromeDriver版本,避免手动安装的版本冲突问题:

!pip install selenium webdriver-manager
!apt-get update 
!apt-get install -y chromium-browser 

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.os_manager import ChromeType

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_experimental_option("detach", True)
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.binary_location = '/usr/bin/chromium-browser'

# 自动下载并适配对应版本的ChromeDriver
serv = Service(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install())
chrome = webdriver.Chrome(service=serv, options=options)

# 测试
chrome.get('https://google.com')
print(chrome.title)

关键修正点说明

  1. 路径修正:/usr/bin/chromedriver是绝对路径,缺少开头斜杠会被识别为相对路径,导致驱动找不到
  2. ChromeService用法:ChromeService只需要驱动路径参数,options应仅传递给webdriver.Chrome
  3. 二进制路径指定:Colab中必须显式声明options.binary_location,否则Selenium可能无法定位到Chromium
  4. 版本适配:手动安装驱动时,复制驱动到/usr/bin确保权限正常;用webdriver_manager则完全规避版本不兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:47:35