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

在Jupyter/Colab中运行Selenium WebDriver代码遇Chrome二进制文件找不到错误求助

解决Colab/Jupyter中Selenium ChromeDriver启动失败问题

问题重现

在Colab/Jupyter中执行以下Selenium代码:

import time
!pip install selenium
from selenium import webdriver

driver = webdriver.Chrome('D:\\Drivers\\chromedriver_win32')

driver.get('http://www.google.com/');
time.sleep(5)
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()

运行后出现核心错误:

DeprecationWarning: executable_path has been deprecated, please pass in a Service object
WebDriverException: Message: unknown error: cannot find Chrome binary

用户已确认Chrome、Selenium及WebDriver版本匹配,手动运行Windows版chromedriver会挂起,尝试常规方案无效,疑惑路径、版本或配置顺序是否存在问题。

核心问题分析

  1. 环境不兼容:Colab运行在Linux虚拟机中,代码使用Windows系统的chromedriver路径(D:\\Drivers\\...),完全不适配。
  2. Chrome浏览器缺失:Colab默认未安装Chrome,驱动无法找到对应浏览器二进制文件。
  3. API弃用:Selenium 4+不再支持直接传入驱动路径,必须使用Service类配置驱动。

分步解决方案

针对Colab环境(Linux)

1. 安装Chrome浏览器及对应驱动

执行以下命令完成环境部署:

!apt-get update
!apt-get install -y chromium-browser
!apt-get install -y chromium-chromedriver

2. 修正后的Selenium代码

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

# 配置Chrome选项适配Colab无图形界面环境
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')  # 启用无头模式(必须)
chrome_options.add_argument('--no-sandbox')  # 绕过安全沙箱
chrome_options.add_argument('--disable-dev-shm-usage')  # 解决临时文件内存不足问题
chrome_options.binary_location = '/usr/bin/chromium-browser'  # 指定Chrome二进制文件路径

# 使用Service类配置驱动路径
service = Service('/usr/lib/chromium-browser/chromedriver')
driver = webdriver.Chrome(service=service, options=chrome_options)

driver.get('http://www.google.com/')
time.sleep(2)
# Selenium 4+需使用By类定位元素,替代旧的find_element_by_name方法
search_box = driver.find_element(By.NAME, 'q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(2)
driver.quit()

针对本地Windows的Jupyter环境

1. 修正驱动路径

确保路径指向chromedriver.exe可执行文件(而非文件夹),例如:
D:\\Drivers\\chromedriver_win32\\chromedriver.exe

2. 适配Selenium 4+ API

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

# 使用Service类配置驱动
service = Service('D:\\Drivers\\chromedriver_win32\\chromedriver.exe')
driver = webdriver.Chrome(service=service)

driver.get('http://www.google.com/')
time.sleep(5)
search_box = driver.find_element(By.NAME, 'q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()

关键注意事项

  • 环境适配:不同操作系统需使用对应版本的Chrome和chromedriver,跨环境运行时不能混用。
  • 无头模式:无图形界面的环境(如Colab、服务器)必须启用--headless参数,否则无法启动Chrome。
  • API更新:Selenium 4.x已彻底移除find_element_by_*系列方法,统一使用find_element(By.XXX, 定位值)语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:47:03