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

Selenium启动失败:DeprecationWarning与WebDriverException错误求助

问题分析与解决方案

你的问题核心是Docker环境中Selenium ChromeDriver意外退出(状态码255),同时存在executable_path弃用警告。以下是针对性的解决步骤:


1. 修正Selenium 4的Driver初始化方式

Selenium 4.6+已内置Driver自动管理功能,无需手动指定executable_path,同时补充无头模式必要参数避免运行异常。修改main.py如下:

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

options = Options()
options.headless = True
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
# 补充无头模式必备参数
options.add_argument('--disable-gpu')
options.add_argument('--window-size=1920,1080')
options.add_argument('--start-maximized')

# 方式1:利用Selenium自动管理Driver(推荐)
driver = webdriver.Chrome(options=options)

# 方式2:手动指定Docker内Driver路径(可选)
# service = Service('/usr/local/bin/chromedriver')
# driver = webdriver.Chrome(service=service, options=options)

driver.get('https://www.google.com')
print(driver.title) 

driver.quit()

2. 确保Chrome与ChromeDriver版本严格匹配

Dockerfile中原逻辑可能导致Chrome和Driver版本不匹配,这是状态码255的常见原因。修改Dockerfile,获取与已安装Chrome对应的Driver版本:

FROM python:3.10-buster

# 安装Chrome运行依赖
RUN apt-get update && apt-get install -y \
    curl unzip gettext python-babel \
    ffmpeg \
    poppler-utils \
    fonts-takao-* fonts-wqy-microhei fonts-unfonts-core \
    libnss3 libgconf-2-4 libfontconfig1 libxrender1 libxss1

# 安装Chrome稳定版
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \
    dpkg -i google-chrome-stable_current_amd64.deb; apt-get -fy install \
    && rm google-chrome-stable_current_amd64.deb

# 获取已安装Chrome的版本,下载对应版本的ChromeDriver
RUN CHROME_VERSION=$(google-chrome --version | grep -oP '\d+\.\d+\.\d+\.\d+') && \
    CHROME_DRIVER_RELEASE=$(curl -sL "https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_STABLE") && \
    curl -sL "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$CHROME_DRIVER_RELEASE/linux64/chromedriver-linux64.zip" > chromedriver.zip && \
    unzip chromedriver.zip -d /tmp && \
    mv /tmp/chromedriver-linux64/chromedriver /usr/local/bin/ && \
    rm -rf chromedriver.zip /tmp/chromedriver-linux64

# 安装Python依赖
COPY requirements.txt requirements.txt
RUN python -m pip install --upgrade pip && pip install -r requirements.txt

# 设置工作目录
ENV APP_HOME /app
WORKDIR $APP_HOME
ENV PYTHONPATH $APP_HOME
COPY . .

# 可选:创建非root用户运行Chrome(避免权限限制)
RUN useradd -m selenium-user
USER selenium-user

3. 验证与排查步骤

  1. 重新构建镜像:
    docker build -t selenium-chrome .
    
  2. 运行容器测试:
    docker run --rm selenium-chrome python main.py
    
  3. 若仍报错,进入容器检查版本一致性:
    docker run -it --rm selenium-chrome bash
    google-chrome --version
    chromedriver --version
    
    确保两个版本号完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:43:17