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

Chrome配置文件启动失败:DevToolsActivePort文件不存在求助

Chrome + Selenium加载本地配置文件时出现DevToolsActivePort不存在错误

使用Chrome 137.0.7151.68(此前版本为135.0.7049.115)结合Selenium加载本地已有的Chrome配置文件,实现自动打开标签页及浏览(如YouTube)功能时,触发错误:
chrome profile error: session not created: DevToolsActivePort file doesn't exist

报错堆栈信息

number_of_sites, driver = load_pages(options.local_IPaddress, options.sleep_time, options.result_dir, browser_obj, timestamp_g, options.premium)
                              ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Documents\Chrometesting\browsers\browser_test.py", line 63, in load_pages
    driver = browser_obj.create()
  File "C:\Users\Documents\Chrometesting\browsers\browser.py", line 63, in create
    driver = webdriver.Chrome(options=self.options)
  File "C:\Users\Documents\Chrometesting\.venv\Lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 45, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
        browser_name=DesiredCapabilities.CHROME["browserName"],
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
        keep_alive=keep_alive,
        ^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\Documents\Chrometesting\.venv\Lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 66, in __init__
    super().__init__(command_executor=executor, options=options)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Documents\Chrometesting\.venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 250, in __init__
    self.start_session(capabilities)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "C:\Users\Documents\Chrometesting\.venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 342, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
               ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Documents\Chrometesting\.venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 429, in execute
    self.error_handler.check_response(response)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "C:\Users\Documents\Chrometesting\.venv\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 232, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: DevToolsActivePort file doesn't exist
Stacktrace:
        GetHandleVerifier [0x0x7ff68ee5fea5+79173]
        GetHandleVerifier [0x0x7ff68ee5ff00+79264]
        (No symbol) [0x0x7ff68ec19e5a]
        (No symbol) [0x0x7ff68ec5ca69]
        (No symbol) [0x0x7ff68ec565fe]
        (No symbol) [0x0x7ff68ec52b1d]
        (No symbol) [0x0x7ff68eca67de]
        (No symbol) [0x0x7ff68eca5f70]
        (No symbol) [0x0x7ff68ec98743]
        (No symbol) [0x0x7ff68ec614c1]
        (No symbol) [0x0x7ff68ec62253]
        GetHandleVerifier [0x0x7ff68f12a2dd+3004797]
        GetHandleVerifier [0x0x7ff68f12472d+2981325]
        GetHandleVerifier [0x0x7ff68f143380+3107360]
        GetHandleVerifier [0x0x7ff68ee7aa2e+188622]
        GetHandleVerifier [0x0x7ff68ee822bf+219487]
        GetHandleVerifier [0x0x7ff68ee68df4+115860]
        GetHandleVerifier [0x0x7ff68ee68fa9+116297]
        GetHandleVerifier [0x0x7ff68ee4f558+11256]
        BaseThreadInitThunk [0x0x7ff91ccb269d+29]
        RtlUserThreadStart [0x0x7ff91db8a9f8+40]

已尝试的解决方法

  • 使用用户配置文件数据创建临时目录:但配置文件显示未验证登录,导致后续执行失败。
  • 配置Chrome参数以访问用户配置文件:添加了--no-sandbox、--disable-dev-shm-usage、--remote-debugging-port=9222参数。

获取配置文件的代码

if self.premium:
    base_path = "AppData\\Local\\Google\\Chrome\\User Data"
    home_directory = os.path.expanduser("~")
    user_data_directory = os.path.join(home_directory, base_path)
    user_data_directory = os.path.normpath(user_data_directory).replace(os.sep, '/')
    profile_dirs = []
    profile_dir = None

    # Locate the last accessed Chrome Profile
    for entry in os.listdir(user_data_directory):
        if entry == "Default" or entry.startswith("Profile"):
            full_path = os.path.join(user_data_directory, entry)
            modified_time = os.path.getmtime(full_path)
            profile_dirs.append((modified_time, entry))
    profile_dir = max(profile_dirs)[1]
解决方案

1. 确保目标配置文件未被其他Chrome实例占用

关闭所有正在运行的Chrome窗口,包括后台进程(通过任务管理器结束chrome.exe相关进程),避免配置文件被锁定导致Selenium无法读取。

2. 完善ChromeOptions参数配置

在创建ChromeOptions时,除已添加的参数外,需正确指定用户数据目录和配置文件目录,同时补充必要参数:

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

options = Options()
# 指定用户数据目录
options.add_argument(f"--user-data-dir={user_data_directory}")
# 指定目标配置文件目录(如Default或Profile 1)
options.add_argument(f"--profile-directory={profile_dir}")
# 补充解决DevToolsActivePort问题的参数
options.add_argument("--remote-debugging-port=9222")
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--disable-ipc-flooding-protection")
options.add_argument("--start-maximized")
options.add_argument("--no-first-run")
options.add_argument("--no-default-browser-check")
# 禁用Chrome组件自动更新(可选)
options.add_argument("--disable-component-update")

driver = webdriver.Chrome(options=options)

3. 复制配置文件到临时目录并修改权限(解决登录状态丢失问题)

若直接使用原配置文件出现登录未验证情况,可复制原配置文件到临时目录,修改权限后让Selenium使用该目录:

import shutil
import tempfile
import stat

# 创建临时目录
temp_user_data = tempfile.mkdtemp()
# 复制原User Data目录到临时目录
shutil.copytree(user_data_directory, temp_user_data, dirs_exist_ok=True)
# 修改临时目录权限,确保当前用户可读写
os.chmod(temp_user_data, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)

# 配置ChromeOptions使用临时目录
options.add_argument(f"--user-data-dir={temp_user_data}")
options.add_argument(f"--profile-directory={profile_dir}")

4. 以管理员权限运行脚本

Windows系统下,右键点击Python脚本或终端,选择“以管理员身份运行”,避免权限不足导致无法访问配置文件或创建DevTools端口文件。

5. 检查ChromeDriver版本兼容性

确保使用的ChromeDriver版本与Chrome 137.0.7151.68完全匹配,版本不兼容也会导致会话创建失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:50:56