配置Chrome已登录Profile后Selenium驱动实例化后无响应
解决方案
1. 修复参数拼写错误
你的--user-data-dir参数中间多了一个空格(写成了--user-data- dir),这会导致Chrome无法正确识别该参数,进而无法加载指定的用户数据目录,最终卡住驱动实例化。修正后的参数应为:
options.AddArgument($@"--user-data-dir=C:\Users\{Environment.UserName}\AppData\Local\Google\Chrome\User Data");
2. 避免直接使用默认用户数据目录
默认的User Data目录极可能被Chrome后台残留进程占用(即便用taskkill强制关闭,也可能有服务进程未彻底终止),建议复制一份默认配置文件到项目专属目录,使用复制后的路径:
string path_profile = @"C:\Projects\TestingEnviornment\TestingEnviornment\driver\ChromeProfile"; options.AddArgument($"--user-data-dir={path_profile}");
3. 正确复用远程调试会话
你手动启动了带远程调试端口的Chrome,但代码未配置连接到该调试实例,导致代码重新启动新的Chrome进程引发冲突。若要复用已登录的会话,代码需添加调试地址配置:
ChromeOptions options = new ChromeOptions(); options.DebuggerAddress = "localhost:9222"; // 连接到已启动的调试端口
此时无需再设置--user-data-dir,因为手动启动的Chrome已经加载了指定的配置文件。
4. 确保配置文件权限
复制的Chrome配置文件目录需保证当前程序拥有读写权限,否则Chrome加载配置时会静默失败,导致驱动卡住。
内容的提问来源于stack exchange,提问作者CJP
相关产品推荐
相关产品推荐

