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

Ubuntu子系统运行Selenium ChromeDriver时Chrome无法启动求助

解决WSL环境下Selenium ChromeDriver的启动问题

我来帮你一步步搞定这些问题,你遇到的情况是典型的Windows子系统(WSL)中运行Selenium ChromeDriver的适配问题,咱们逐个击破:

1. 修复初始的Chrome崩溃错误(DevToolsActivePort)

你第一次碰到的WebDriverException核心原因有两个:

  • WSL环境默认没有完整的图形界面支持,Chrome启动时需要的DevTools端口无法正常创建
  • Linux环境下Chrome的沙箱机制在WSL里会触发权限限制

你添加的--no-sandbox是正确方向,但还需要补充适配WSL的关键参数,同时Selenium的参数用法也有更新。

2. 消除DeprecationWarning警告

你收到的DeprecationWarning: use options instead of chrome_options是因为Selenium 3.x之后的版本已经废弃了chrome_options参数,改用统一的options参数传递配置,这个改起来很简单。

3. 解决浏览器窗口不弹出的问题

你添加了--headless参数,这是Chrome的无头运行模式,本来就不会弹出可视化窗口。如果想要在WSL里看到浏览器窗口,得先配置Windows端的XServer,再调整代码参数。

最终可用的代码方案

方案A:无头模式(适合后台脚本运行,无需弹出窗口)

这个模式不需要配置图形界面,适合自动化脚本执行:

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

chrome_options = Options()
# 适配WSL的核心参数
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')  # 解决WSL内存共享限制问题
chrome_options.add_argument('--headless=new')  # 新版无头模式,比旧的--headless兼容性更好
chrome_options.add_argument('--disable-extensions')

# 用options参数替代已废弃的chrome_options
driver = webdriver.Chrome(options=chrome_options)
driver.get('https://google.com')

# 测试是否正常运行
print(driver.title)
driver.quit()

方案B:弹出可视化窗口(需先配置XServer)

如果你想要看到浏览器窗口,按以下步骤操作:

  1. 在Windows端安装VcXsrv(可通过Windows应用商店或官网下载),启动时选择"Multiple windows",取消勾选"Native opengl",勾选"Disable access control"
  2. 在WSL的终端(或Jupyter的终端面板)中设置显示变量:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0
  1. 修改Selenium代码,去掉--headless参数:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-extensions')

driver = webdriver.Chrome(options=chrome_options)
driver.get('https://google.com')

额外注意事项

  • 务必保证ChromeDriver版本和Chrome/Chromium浏览器版本完全匹配,版本不匹配是很多启动错误的根源
  • 如果WSL里装的是Chromium,可能需要手动指定ChromeDriver的路径,确保系统能找到它
  • 建议先在WSL终端里单独测试Selenium代码,确认没问题后再放到Jupyter环境中运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 12:17:41