Selenium调用复制的Chrome配置文件时出现“Session not created - Chrome not reachable”错误求助
我之前也碰到过一模一样的问题!折腾了好一阵才摸清楚几个靠谱的解决方向,给你梳理下:
先排查最容易踩的坑
彻底关闭所有Chrome相关进程
复制配置文件的时候,如果有Chrome窗口在前台/后台运行,复制的文件大概率会有锁定或者不完整的情况,Selenium启动时就会连不上。解决办法:打开任务管理器,把所有chrome.exe、chromedriver.exe进程全杀掉,再重新复制配置文件夹。检查Chrome和ChromeDriver的版本匹配
这个是老问题但最容易忽略!Chrome浏览器的版本必须和你用的ChromeDriver版本完全对应,哪怕小版本差一位都可能出这种连接失败的错误。你可以打开Chrome的「设置-关于Chrome」看具体版本号,然后更换成完全一致的ChromeDriver版本。
再看配置文件的问题
复制方式要正确
直接复制正在使用的Default文件夹会带一些临时锁文件(比如带.tmp、.lock后缀的),这些文件会干扰Selenium启动。解决办法:先完全关闭Chrome,再复制整个Default文件夹到新的位置(比如重命名为MySeleniumProfile),复制时跳过那些临时文件。权限和路径要对
复制后的配置文件夹如果放在系统盘的敏感目录(比如Program Files),可能会有权限问题。建议把它移到自己用户目录下的安全位置(比如C:\Users\你的用户名\Documents\ChromeProfiles),并确保当前用户对这个文件夹有完全控制的权限。
最后检查Selenium的启动参数
指定配置文件的参数很容易写错,一定要注意:user-data-dir是配置文件所在的父目录,而不是具体的配置文件夹;具体的配置文件夹需要用profile-directory来指定。举个Python代码的例子:
from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() # 这里是配置文件所在的父目录 options.add_argument("--user-data-dir=C:\\Users\\你的用户名\\Documents\\ChromeProfiles") # 这里是你复制并重命名的配置文件夹名称 options.add_argument("--profile-directory=MySeleniumProfile") driver = webdriver.Chrome(options=options) driver.get("https://www.example.com")
如果之前是直接指定配置文件夹路径给user-data-dir,那肯定会出错,改成这种父目录+子文件夹的方式试试。
另外,如果你的代码里加了--headless无头模式参数,也可以先暂时去掉,有些配置文件的设置和无头模式不兼容,会导致连接失败。
内容来源于stack exchange

