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

如何通过C# Selenium ChromeDriver保存WhatsApp登录会话免扫二维码?

解决C# Selenium ChromeDriver保存WhatsApp登录会话免扫码问题

核心原理

WhatsApp Web的登录状态存储在Chrome用户配置文件的Cookie和本地存储中,只要Selenium加载已完成登录的Chrome配置文件,就能直接复用会话,无需重复扫码。

操作步骤

1. 手动配置并保存登录状态

  • 关闭所有正在运行的Chrome浏览器进程(打开任务管理器,结束所有chrome.exe进程)
  • 通过命令行启动指定Profile的Chrome:
    chrome.exe --user-data-dir="C:\Users\Myname\AppData\Local\Google\Chrome\User Data" --profile-directory="Profile 3"
    
  • 在这个Chrome窗口中打开https://web.whatsapp.com/,完成扫码登录,确认登录成功后关闭窗口

2. 调整Selenium代码

确保路径格式正确(用@符号避免转义错误),同时保证ChromeDriver与Chrome版本完全匹配:

ChromeOptions options = new ChromeOptions();
// 使用@符号简化路径转义,避免语法错误
options.AddArguments(@"--user-data-dir=C:\Users\Myname\AppData\Local\Google\Chrome\User Data");
options.AddArguments(@"--profile-directory=Profile 3");
// 可选:禁用干扰性提示和扩展,提升稳定性
options.AddArguments("--disable-infobars");
options.AddArguments("--disable-extensions");

IWebDriver driver = new ChromeDriver(options);
driver.Navigate().GoToUrl("https://web.whatsapp.com/");
// 此时应直接进入已登录状态,无需扫码

常见问题排查

  • 仍需扫码:检查Profile路径是否正确,确认手动登录后该Profile的WhatsApp会话已保存(手动打开该Profile的Chrome,看是否自动登录WhatsApp)
  • 版本不兼容:ChromeDriver版本必须与Chrome浏览器版本完全一致(比如Chrome是118.x,ChromeDriver也要用118.x版本)
  • Profile冲突:运行程序前确保没有其他Chrome实例在使用同一个Profile,否则会导致配置文件无法加载
  • 权限问题:避免用管理员权限运行程序,确保程序对用户数据目录有读写权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:05:46