Selenium启动新会话后浏览器未保留Cookie问题求助
问题根源
Selenium默认启动Chrome时会创建临时独立用户配置文件,所有会话数据(包括Cookie)都存在这个临时目录里,浏览器关闭后临时目录会被自动清理,所以重启Selenium会话后找不到之前的Cookie。而你手动打开Chrome用的是默认用户数据目录,自然能看到手动操作留下的Cookie。
解决方法
给ChromeOptions指定你的Chrome用户数据目录,让Selenium复用默认用户配置,Cookie就会被持久化到默认目录,重启会话后依然能读取到。
修改后的代码示例:
ChromeOptions chromeOptions = new ChromeOptions(); // 替换为你的Chrome用户数据实际路径 // Windows示例:C:\\Users\\你的用户名\\AppData\\Local\\Google\\Chrome\\User Data // macOS示例:/Users/你的用户名/Library/Application Support/Google/Chrome // Linux示例:/home/你的用户名/.config/google-chrome chromeOptions.addArguments("user-data-dir=你的Chrome用户数据目录路径"); // 保留原有配置 chromeOptions.addArguments("ignore-certificate-errors"); Object proxy = getCorrectProxy(); chromeOptions.setCapability(CapabilityType.PROXY, proxy); chromeOptions.setCapability("acceptInsecureCerts", true); chromeOptions.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); chromeOptions.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, true); System.setProperty("webdriver.chrome.driver", GlobalSettings.CHROME_DRIVER_PATH); driver = new ChromeDriver(chromeOptions);
注意点
- 路径必须准确,不同操作系统的用户数据目录位置不一样,替换成你自己的路径。
- 运行代码前要关闭所有Chrome窗口,否则会因为用户目录被占用导致启动失败。
- 不想影响日常Chrome配置的话,也可以新建一个独立的用户目录专门给Selenium用。
内容的提问来源于stack exchange,提问作者Selenium Lover
相关产品推荐
相关产品推荐

