4

我有带有 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它的目录是好的。这里有什么问题?

4

1 回答 1

9

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

已知的问题

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解决方案不起作用。提交错误可能是值得的,因为我在主题上找不到错误。

于 2013-07-16T17:07:04.570 回答