如何使用Chrome访问现有Cookie?

我有使用Gmail登录信息的Cookie,因此Chrome会自动打开我的Gmail。

我尝试了以下代码,但它没有用:

System.setProperty("webdriver.chrome.driver","chromedriver\\chromedriver.exe"); DesiredCapabilities capabilities = DesiredCapabilities.chrome(); capabilities.setCapability("chrome.switches", Arrays.asList("C:\\Users\\Owner\\AppData\\Local\\Google\\Chrome\\User Data\\Default")); //I also tried using: capabilities.setCapability("chrome.switches", Arrays.asList("--user-data-dir = C:\\Users\\Owner\\AppData\\Local\\Google\\Chrome\\User Data\\Default")); WebDriver driver = new ChromeDriver(capabilities); driver.get("https://gmail.com"); 

我检查了C:\\Users\\Owner\\AppData\\Local\\Google\\Chrome\\User Data\\Default没关系。 这里有什么问题?

我在之前没有注意到的Chrome驱动程序官方维基页面上有一个已知问题部分:

已知的问题

3。 无法指定自定义配置文件

现在,我不知道这是否过时。 我找不到这个错误报告。 确实,您无法通过Capabilities (截至2013年7月)指定自定义配置文件,如您所发现的那样。 但有一个解决方案……


解决方案

以下是我设法让它运行的方式:

 ChromeOptions opt = new ChromeOptions(); opt.setBinary("E:\\some\\path\\chrome.exe"); opt.addArguments("--user-data-dir=C:\\Users\\Owner\\AppData\\Local\\Google\\Chrome\\User Data"); driver = new ChromeDriver(opt); 

注意User数据目录的路径 – 它没有 \\Default部分。 在这种情况下,它对我来说效果很好,打开存储了所有Cookie和登录的Chrome配置文件。

我不知道为什么Capabilities解决方案不起作用。 提交bug可能是值得的,因为我找不到关于主题的错误。