如何通过Selenium,ChromeDriver和GoogleChrome打开默认的Chrome配置文件

时间:2018-07-11 03:59:07

标签: c# google-chrome selenium selenium-webdriver selenium-chromedriver

我想加载一个使用Chrome的新Selenium ChromeDriver,就像我从扩展坞中打开Chrome一样(基本上它会包含我所有的扩展程序,历史记录等)

当我使用以下代码时:

ChromeOptions options = new ChromeOptions();
options.AddArgument("user-data-dir=C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data\\");
options.AddArgument("disable-infobars");
options.AddArgument("--start-maximized");
ChromeDriver chromeDriver = new ChromeDriver(options);

它会加载Chrome浏览器,并让我登录到我的Gmail和所有扩展程序,就像我想要的一样,但其余的代码:

chromeDriver.Navigate().GoToUrl("https://www.youtube.com/");

不执行。但是当我使用以下内容

ChromeOptions options = new ChromeOptions();
options.AddArgument("user-data-dir=C:\\Users\\Andrea\\AppData\\Local\\Google\\Chrome\\User Data\\Default");
options.AddArgument("disable-infobars");
options.AddArgument("--start-maximized");
ChromeDriver chromeDriver = new ChromeDriver(options);

我的其余代码可以完美执行(注意在第一个参数末尾添加了“ Default”)。关于如何获取第一段代码(末尾没有“ Default”的代码)以执行程序其余部分的任何提示或建议都很好。谢谢!

4 个答案:

答案 0 :(得分:0)

我有同样的问题。我不知道如何解决它,我想根本原因是配置文件路径中的空白。

我知道解决方法。只需将C:\\Users\\Andrea\\AppData\\Local\\Google\\Chrome\\User Data复制到c:\myUserData(路径中没有空格)。

然后添加参数。

options.AddArgument("user-data-dir=C:\\myUserData");

答案 1 :(得分:0)

用于常规任务的默认Chrome配置文件可能包含以下一项或全部:

  • 历史
  • 书签
  • 饼干
  • 扩展
  • 主题
  • 自定义字体

所有这些配置,除非是 Test Specification 的一部分,否则将它们加载到 Selenium WebDriver 发起的会话中将是一个过大的杀伤力。因此,如果您为测试创建专用的新的Chrome配置文件并使用所有必需的配置进行配置,它将是一个更好的方法。

在这里您将找到有关How to create and open a Chrome Profile

的详细讨论

为测试创建专用的新的Chrome配置文件后,您可以轻松地调用 Chrome配置文件,如下所示:

ChromeOptions options = new ChromeOptions();
options.AddArgument("user-data-dir=C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2");
options.AddArgument("disable-infobars");
options.AddArgument("--start-maximized");
ChromeDriver chromeDriver = new ChromeDriver(options);
chromeDriver.Navigate().GoToUrl("https://www.youtube.com/");

在这里您将找到有关How to open URL through default Chrome profile using Python Selenium Webdriver

的详细讨论

答案 2 :(得分:0)

我知道这是一个老问题,但是对我有用的是删除“ C:\”并将所有反斜杠替换为正斜杠。因此,从原始问题出发,这应该可以加载默认配置文件:

options.AddArgument("user-data-dir=/Users/User/AppData/Local/Google/Chrome/User Data");

答案 3 :(得分:0)

这是一个古老的问题,但是如果您遇到此问题,您要做的就是关闭所有标签页,只需关闭chrome窗口即可。

硒不能使用该数据,因为它已经在使用中。

希望您对此有所帮助。