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

基于Selenium+Java实现WhatsApp Web首次扫码后免二维码验证

解决WhatsApp Web Selenium驱动无需重复扫码的问题

嗨,我来帮你搞定这个需求!要实现首次扫码后,后续用Selenium启动WhatsApp Web不用再扫二维码,关键是让ChromeDriver复用已保存登录会话的用户数据目录——WhatsApp的登录状态就存在这个目录的Cookie和本地存储里,只要驱动加载它,就能直接进入已登录状态。

具体实现步骤

核心思路是通过ChromeOptions配置用户数据目录(现在更推荐用ChromeOptions,它是ChromeDriver的官方推荐配置方式,替代略显过时的DesiredCapabilities):

  1. 选择用户数据目录:
    • 可以用Chrome默认的用户数据目录(路径一般是C:\\Users\\你的Windows用户名\\AppData\\Local\\Google\\Chrome\\User Data),但注意如果你的日常Chrome浏览器正在运行,会和驱动冲突,所以更稳妥的是自定义一个单独的目录来专门给Selenium用。
  2. 修改你的Java代码:
    把原来的代码调整为以下形式,添加用户数据目录的配置:
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.chrome.ChromeDriverService;
import java.io.File;

public class DriverTester {
    public static void main(String[] args) {
        // 设置ChromeDriver的路径
        System.setProperty("webdriver.chrome.driver", "C:\\whatsup\\src\\main\\resources\\chromedriver.exe");

        // 配置ChromeOptions,指定用户数据目录
        ChromeOptions options = new ChromeOptions();
        // 替换成你自定义的目录路径,比如专门用于Selenium会话的目录
        String userDataDir = "C:\\whatsup\\selenium-chrome-profile";
        options.addArguments("user-data-dir=" + userDataDir);

        // 可选:关闭Chrome的自动化提示弹窗
        options.addArguments("--disable-infobars");

        // 初始化ChromeDriver服务(保持你原有的服务配置)
        ChromeDriverService service = new ChromeDriverService.Builder()
                .usingDriverExecutable(new File("C:\\whatsup\\src\\main\\resources\\chromedriver.exe"))
                .build();

        // 用配置好的Options启动ChromeDriver
        ChromeDriver driver = new ChromeDriver(service, options);

        // 打开WhatsApp Web
        driver.get("https://web.whatsapp.com/");

        // 首次运行需扫码登录,之后再次启动会直接加载已保存的登录状态
    }
}

关键注意事项

  • 首次运行必做:第一次启动时还是需要扫码登录,登录状态会自动保存到你指定的user-data-dir目录中;
  • 目录权限:确保Java程序有读写这个自定义目录的权限,否则无法保存或加载会话数据;
  • 避免冲突:不要同时运行日常使用的Chrome和Selenium驱动的Chrome(如果用默认用户目录的话),否则会触发报错,所以优先推荐自定义单独目录;
  • 版本匹配:确保ChromeDriver版本和本地安装的Chrome浏览器版本一致,否则会出现兼容性问题。

内容的提问来源于stack exchange,提问作者Roni Koren Kurtberg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:45:17