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

Debian 11.3环境下Selenium v4.1.5与Chromedriver v101.0.4951兼容问题及报错排查咨询

排查方向与解决方案

针对你在WSL2 Debian环境下遇到的Selenium+Chromium问题,我整理了几个核心排查方向,结合环境特性逐个解决:

1. 强制驱动版本与Chromium完全匹配

虽然Selenium 4对小版本差异有一定兼容性,但WSL环境下可能更敏感。你可以直接指定对应版本的Chromedriver,让webdriver-manager下载匹配你系统的101.0.4951.64版本:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.utils import ChromeType

chrome_options = webdriver.ChromeOptions()
# 先清除旧缓存(可选,在终端执行)
# rm -rf /home/db/.wdm/

driver = webdriver.Chrome(
    service=Service(
        ChromeDriverManager(
            chrome_type=ChromeType.CHROMIUM,
            version="101.0.4951.64"
        ).install()
    ),
    options=chrome_options
)

如果不想用webdriver-manager,也可以直接指定系统安装的Chromedriver路径(先确认/usr/bin/chromedriver存在且版本匹配):

driver = webdriver.Chrome(
    service=Service('/usr/bin/chromedriver'),
    options=chrome_options
)

2. 解决WSL2的图形界面/无头模式问题

WSL2默认没有图形环境,Chromium启动需要显示支持,你有两个选择:

选项A:配置X Server(需要界面时)

  • 在Windows上安装VcXsrv或X410,启动时勾选Disable access control
  • 在WSL终端里设置DISPLAY变量:
    export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
    
    可以把这句加到~/.bashrc或~/.zshrc里,每次启动自动生效。

选项B:使用无头模式(无需界面时)

Selenium 4支持新的无头模式,无需X Server,直接添加参数:

chrome_options.add_argument("--headless=new")
chrome_options.add_argument("--no-sandbox")  # WSL下必须,否则会因权限问题启动失败
chrome_options.add_argument("--disable-dev-shm-usage")  # 解决WSL共享内存不足的问题

3. 修复DevToolsActivePort问题

你已经加了--remote-debugging-port,但还要补充两个关键参数,这是WSL环境下Chrome启动的常见要求:

chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")

这两个参数分别解决沙箱权限限制和共享内存不足的问题,很多WSL下的Chrome启动失败都源于此。

4. 验证系统Chromium是否能正常启动

先排除系统层面的问题:在WSL终端直接运行chromium-browser,如果无法启动,先修复Chromium的安装:

sudo apt update
sudo apt install chromium-browser --fix-missing

如果启动时提示依赖缺失,根据提示安装对应的库即可。

5. 检查端口占用与网络设置

如果你用了--remote-debugging-port=9222,先确认这个端口没有被WSL或Windows占用:

lsof -i :9222

如果被占用,换一个端口比如9223即可。另外,确保WSL2的网络正常,重启WSL(wsl --shutdown然后重新打开终端)也能解决一些随机的网络/端口问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 21:42:36