如何在WSL2环境中使用Python Selenium?Chrome启动异常求助
WSL2环境下Selenium Chrome启动失败解决方案
核心原因
报错本质是WSL2默认无图形界面、沙箱权限限制、共享内存不足三个核心问题导致Chrome无法正常启动,CPU频率文件读取错误为非致命警告,可通过参数忽略。
解决步骤
- 步骤1:添加Chrome必填启动参数
在Selenium初始化ChromeOptions时必须加入以下参数,示例代码如下:from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 启用新版无头模式,兼容性优于旧版--headless chrome_options.add_argument("--headless=new") # 关闭沙箱模式,WSL2环境无root权限时必须开启 chrome_options.add_argument("--no-sandbox") # 禁用/dev/shm使用,规避WSL2共享内存过小导致的崩溃 chrome_options.add_argument("--disable-dev-shm-usage") # 禁用GPU加速,解决WSL2显卡适配导致的报错 chrome_options.add_argument("--disable-gpu") # 指定远程调试端口,解决DevToolsActivePort不存在的报错 chrome_options.add_argument("--remote-debugging-port=9222") # 忽略CPU频率读取警告,消除开头的两个file_io_posix.cc报错 chrome_options.add_argument("--disable-cpu-frequency-monitoring") driver = webdriver.Chrome(options=chrome_options) - 步骤2:安装Chrome运行依赖
运行以下命令安装Chrome所需的系统依赖,避免缺库导致启动失败:sudo apt update && sudo apt install -y libnss3 libxss1 libasound2 libatk-bridge2.0-0 libgtk-3-0 - 步骤3:验证Chrome与Chromedriver版本匹配
分别运行以下命令查看版本,确保两者大版本号完全一致:
若版本不匹配,下载对应版本的Chromedriver放到# 查看Chrome版本 google-chrome --version # 查看Chromedriver版本 chromedriver --version/usr/local/bin目录下,执行sudo chmod +x /usr/local/bin/chromedriver赋予执行权限即可。 - 步骤4:测试Chrome无头模式是否正常
直接在终端运行以下命令,无报错即为Chrome运行正常:google-chrome --headless=new --no-sandbox --disable-gpu https://www.baidu.com
完成以上步骤后重新运行Selenium脚本即可正常启动。
内容的提问来源于stack exchange,提问作者lr_optim
相关产品推荐
相关产品推荐

