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

