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

Ubuntu WSL中ChromeDriver启动崩溃问题求助

问题:WSL下root用户运行Selenium Chrome驱动启动失败

环境信息

  • 系统:Ubuntu WSL
  • 运行身份:root用户
  • Python版本:3.9
  • Chrome版本:113.0.5672.92
  • ChromeDriver版本:113.0.5672.63

原测试代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = webdriver.ChromeOptions()

chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--disable-dev-shm-usage')
print("options assigned")
path   = '/usr/bin/chromedriver'
browser = webdriver.Chrome(executable_path=path, options=chrome_options)

报错信息

python testscript.py
/home/guc3xq/anaconda3/envs/sas/lib/python3.9/site-packages/requests/__init__.py:109: RequestsDependencyWarning: urllib3 (1.26.15) or chardet (5.1.0)/charset_normalizer (2.0.12) doesn't match a supported version!
  warnings.warn(
options assigned
Traceback (most recent call last):
  File "/home/guc3xq/dev/chromedriverdev/testscript.py", line 14, in <module>
    browser = webdriver.Chrome(executable_path=path, options=chrome_options)
  File "/home/guc3xq/anaconda3/envs/sas/lib/python3.9/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__
    RemoteWebDriver.__init__(
  File "/home/guc3xq/anaconda3/envs/sas/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/guc3xq/anaconda3/envs/sas/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/guc3xq/anaconda3/envs/sas/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/guc3xq/anaconda3/envs/sas/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

解决方案

1. 补充Chrome启动参数

root用户运行Chrome时,需额外指定调试端口和临时用户数据目录,避免DevToolsActivePort文件缺失问题,添加以下参数:

chrome_options.add_argument('--remote-debugging-port=9222')
chrome_options.add_argument('--user-data-dir=/tmp/chrome_temp_dir')

2. 改用webdriver-manager自动管理驱动

利用已导入的ChromeDriverManager自动获取匹配版本的驱动,避免手动指定路径带来的版本或权限问题,替换原代码中路径指定和浏览器初始化部分:

service = Service(ChromeDriverManager().install())
browser = webdriver.Chrome(service=service, options=chrome_options)

3. 确认临时目录权限

确保/tmp目录对root用户有读写权限,执行命令:

chmod 777 /tmp

修改后的完整代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = webdriver.ChromeOptions()

# 基础参数
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless=new')  # 新版headless模式稳定性更强
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--disable-dev-shm-usage')
# root运行专属参数
chrome_options.add_argument('--remote-debugging-port=9222')
chrome_options.add_argument('--user-data-dir=/tmp/chrome_temp_dir')

print("options assigned")
# 自动安装匹配驱动并启动浏览器
service = Service(ChromeDriverManager().install())
browser = webdriver.Chrome(service=service, options=chrome_options)

# 测试访问页面
browser.get("https://www.google.com")
print(browser.title)
browser.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:07:03