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

Selenium指定Chrome用户数据目录启动时请求超时,无法加载网页求助

Selenium指定Chrome用户数据目录启动时请求超时,无法加载网页求助

兄弟,看你这问题卡了一周了,太闹心了!我帮你梳理下核心矛盾:指定自定义Profile启动时,Chrome能打开但卡在new ChromeDriver(...)这步超时,去掉--user-data-dir就一切正常但用不了目标配置。这大概率是用户目录冲突、参数错误、版本不匹配这几个常见坑,咱一步步来解决:

1. 先解决最常见的「Chrome进程冲突」问题

你当前用的--user-data-dir是系统默认的Chrome用户数据目录(LocalApplicationData\Google\Chrome\User Data),如果你的本地Chrome浏览器(包括后台挂着的进程)正在占用这个目录,Selenium的ChromeDriver就无法获取目录的独占控制权,直接卡超时!

解决方案:

  • 先打开任务管理器,把所有chrome.exe进程全杀掉(包括后台的,别漏了!)
  • 更稳妥的办法:把「Profile 1」复制到一个独立的新目录(比如C:\MyChromeProfiles),然后修改代码里的路径:
    // 换成独立目录,避免和系统Chrome冲突
    string _gpath = @"C:\MyChromeProfiles";
    chromeOptions.AddArguments($"--user-data-dir={_gpath}");
    chromeOptions.AddArguments("--profile-directory=Profile 1");
    
    这样不管系统Chrome开不开,Selenium都能独立用这个Profile,不会抢资源。

2. 检查并修正启动参数的错误

我看你代码里有个参数打错了!--disable-dev-shm-using应该是--disable-dev-shm-usage,少了个age,这个参数虽然Windows下影响不大,但打错等于无效,先修正过来;另外--remote-debugging-port=9222如果被其他程序占用也会出问题,建议换个端口(比如9223),或者先查端口是否被占用:

netstat -ano | findstr 9222

如果有结果,杀掉对应PID的进程再试。

3. 确认ChromeDriver和Chrome版本完全匹配

你的Chrome是136.0.7103.93,但ChromeDriver是136.0.7103.4900,主版本一致但小版本差了点。虽然通常兼容,但有时候这种细微差异会导致奇奇怪怪的超时问题,建议下载和Chrome完全同版本的ChromeDriver,替换掉当前的驱动文件。

4. 检查Profile目录的权限问题

如果你的程序是用「管理员身份」运行的,而目标Profile目录是普通用户权限,可能会出现读写权限冲突,导致Driver无法加载Profile配置。

  • 试试用普通用户身份启动你的程序
  • 或者给C:\MyChromeProfiles目录(你新复制的Profile目录)添加「完全控制」权限(右键→属性→安全→编辑→添加当前用户→勾选完全控制)

5. 验证Profile本身是否正常

先手动确认「Profile 1」能正常工作:

  • 找到桌面的Chrome快捷方式,右键→属性→目标栏末尾加: --user-data-dir=C:\MyChromeProfiles --profile-directory=Profile 1(注意前面有空格)
  • 双击打开Chrome,看看能不能正常访问你的目标网站https://www.mywebsite.com/
    如果手动打开都有问题,说明Profile本身损坏了,建议新建一个干净的Profile,再复制过去用。

最后给你修改后的示例代码片段

// 替换为独立的Profile目录
string _gpath = @"C:\MyChromeProfiles";
newChromeDriverService = ChromeDriverService.CreateDefaultService();
newChromeDriverService.HideCommandPromptWindow = true;
chromeOptions = new ChromeOptions();

// 修正参数错误,换端口
chromeOptions.AddArguments("--no-sandbox");
chromeOptions.AddArguments("--remote-debugging-port=9223");
chromeOptions.AddArguments("--disable-dev-shm-usage");
chromeOptions.AddArguments("--disable-setuid-sandbox");
chromeOptions.AddArguments("--hide-crash-restore-bubble");
chromeOptions.AddArguments($"--user-data-dir={_gpath}");
chromeOptions.AddArguments("--profile-directory=Profile 1");

// 实例化Driver前确保所有Chrome进程已关闭
foreach (var process in Process.GetProcessesByName("chrome"))
{
    process.Kill();
}

chDriver = new ChromeDriver(newChromeDriverService, chromeOptions);
chDriver.Manage().Window.Size = new Size(1200, 1000);
chDriver.Manage().Window.Position = new Point(0, 0);

// 后续代码不变
var devTools = (IDevTools)chDriver;
IDevToolsSession session = devTools.GetDevToolsSession();
SetupNetworkLogging(chDriver);
string url = "https://www.mywebsite.com/";
Uri uri = new Uri(url);
chDriver.Navigate().GoToUrl(uri);
wait = new WebDriverWait(chDriver, TimeSpan.FromSeconds(5000));

按这个顺序试,应该能解决你的超时问题!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:34:37