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

WSL2中使用Python undetected-chromedriver及Chrome启动卡顿问题求助

解决WSL2中Chrome/ChromeDriver启动卡顿且无法显示UI的问题

1. 确认WSL2的X11转发配置

  • 先检查DISPLAY环境变量是否正确,在WSL2终端执行:
    echo $DISPLAY
    
    正常应输出类似localhost:0或对应Windows IP的192.168.x.x:0。若输出异常,手动设置:
    export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
    export LIBGL_ALWAYS_INDIRECT=1
    
    可将上述两行添加到~/.bashrc或~/.zshrc,避免每次重启重复配置。

2. 启动Chrome时添加必要参数

WSL2的环境限制需要给Chrome加特定参数才能正常运行,执行:

google-chrome --no-sandbox --disable-gpu --disable-software-rasterizer --display=$DISPLAY
  • --no-sandbox:规避WSL2用户命名空间限制,是运行Chrome的必要参数
  • --disable-gpu/--disable-software-rasterizer:禁用GPU相关特性,避免WSL2中GPU适配问题导致的卡顿

3. 修复并配置undetected-chromedriver

注意代码中导入包的语法错误(应为下划线而非连字符),同时添加适配WSL2的启动参数:

import os
import undetected_chromedriver as uc
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--disable-software-rasterizer')
chrome_options.add_argument(f'display={os.environ.get("DISPLAY")}')

# 若Chrome不在默认路径,需指定binary_location
# chrome_options.binary_location = '/usr/bin/google-chrome'

driver = uc.Chrome(options=chrome_options)

4. 验证Chrome与ChromeDriver版本匹配

执行以下命令确认版本完全一致:

google-chrome --version
chromedriver --version

版本不匹配会直接导致启动异常或卡顿,需重新安装对应版本的ChromeDriver。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:27:09