如何使用Chrome访问现有Cookie?

时间:2013-07-16 05:48:07

标签: java cookies selenium gmail

我有使用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的目录,没关系。 这里有什么问题?

1 个答案:

答案 0 :(得分:9)

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

  

已知问题

     

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);

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

我不知道为什么Capabilities解决方案不起作用。可能值得file a bug,因为我找不到一个主题。