如何让Selenium在Windows的WSL2(Ubuntu环境)中正常运行?
解决WSL2 Ubuntu中Selenium ChromeDriver的SessionNotCreatedException问题
核心问题分析
报错显示的ChromeDriver版本为2.37,属于老旧版本,与当前主流Chrome浏览器版本完全不兼容,再加上WSL2默认无图形界面的环境限制,直接导致会话创建失败。
具体解决步骤
1. 匹配ChromeDriver与Chrome版本
先确认Ubuntu环境中已安装的Chrome版本:google-chrome --version下载与Chrome主版本一致的ChromeDriver(例如Chrome是118.x,就下载118.x系列的ChromeDriver),替换系统中旧的
chromedriver文件;更推荐用webdriver-manager自动管理版本:
先安装依赖工具:pip install webdriver-manager修改代码适配自动管理与WSL环境:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager options = webdriver.ChromeOptions() # 适配WSL无界面运行 options.add_argument('--headless=new') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options) driver.get("http://selenium.dev") print(driver.title) driver.quit()2. 安装WSL运行Chrome的必要依赖
如果运行时提示缺少系统库,执行以下命令补全依赖:sudo apt update && sudo apt install -y libnss3 libgconf-2-4 libxss1 libappindicator1 libindicator73. 验证修复效果
运行修改后的代码,若能正常打印页面标题,说明问题已解决。
内容的提问来源于stack exchange,提问作者Indrajeet Haldar
相关产品推荐
相关产品推荐

