使用Selenium WebDriver使用java加载Chrome Profile

我在让Selenium加载铬配置文件时遇到了一些麻烦。

String pathToChrome = "driver/chromedriver.exe";
System.setProperty("webdriver.chrome.driver", pathToChrome);

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
String chromeProfile = "C:\\Users\\Tiuz\\AppData\\Local\\Google\\Chrome\\User Data\\Default";
ArrayList<String> switches = new ArrayList<String>();
switches.add("--user-data-dir=" + chromeProfile);
capabilities.setCapability("chrome.switches", switches);
WebDriver driver = new ChromeDriver(capabilities);
driver.get("http://www.google.com");

它开始很好,工作完美,但我想加载默认配置文件,因为我想在启用某些扩展并测试某些首选项的情况下对其进行测试。

有没有人知道为什么这段代码不起作用?

我已经用Selenium 2.29.1和2.28.0测试了它,在Windows 7 x64上用chromedriver 26.0.1383.0测试了它。


答案 1

这是一个古老的问题,但我仍然遇到问题,所以我做了更多的研究来了解发生了什么。来自@PrashanthSams的答案是正确的,但我错误地添加到配置文件路径的末尾\Default

我发现Chrome附加到中指定的配置文件路径。因此,如果您的配置文件路径指定为:\Defaultuser-data-dir

user-data-dir=C:\Users\user_name\AppData\Local\Google\Chrome\User Data\Default\

它将附加,你最终会得到:\Default

C:\Users\user_name\AppData\Local\Google\Chrome\User Data\Default\Default

这与您在该用户配置文件下正常打开chrome时获得的配置文件不同。

如果打开命令提示符,导航到 chrome 可执行目录,然后使用类似于以下内容指定的选项运行 chrome,则还可以验证您的设置:

chrome.exe --user-data-dir="C:\Users\user_name\AppData\Local\Google\Chrome\User Data"

最后,您可以转到Chrome中的新标签页,然后浏览到您将看到正在使用的实际配置文件。它将按如下方式列出:chrome://version/

配置文件路径C:\Users\user_name\AppData\Local\Google\Chrome\User Data\Default


答案 2

这些组合确实欺骗了我:)

System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:/Users/user_name/AppData/Local/Google/Chrome/User Data");
options.addArguments("--start-maximized");
driver = new ChromeDriver(options);

推荐