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

问题描述 投票:0回答:5

我想加载一个使用 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);

我的代码的其余部分执行完美(请注意第一个参数末尾添加的“默认”)。关于如何获得第一个代码块(末尾没有“默认”的代码块)来执行程序的其余部分的任何提示或建议都会很棒。谢谢!

c# google-chrome selenium selenium-webdriver selenium-chromedriver
5个回答
4
投票

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

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


2
投票

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

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

所有这些配置直到并且除非是您的测试规范的一部分,否则将它们加载到由Selenium WebDriver启动的会话中将是一种矫枉过正。因此,如果您为测试创建专用的“新 Chrome 配置文件”并使用所有必需的配置进行配置,这将是一个更好的方法。 在这里您将找到有关

如何创建和打开 Chrome 配置文件

的详细讨论 一旦您为测试创建了专用的

新 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/");

在这里您将找到关于 

如何使用 Python Selenium Webdriver 通过默认 Chrome 配置文件打开 URL 的详细讨论


0
投票

我知道一个解决方法。只需将

C:\\Users\\Andrea\\AppData\\Local\\Google\\Chrome\\User Data

复制到

c:\myUserData
(路径中没有空格)。

然后添加参数。

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



0
投票

chromeOptions.AddArguments("user-data-dir=C:\\Users\\ABC\\AppData\\Local\\Google\\Chrome\\User Data"); chromeOptions.AddArguments("profile-directory=Profile 2");



-1
投票

Selenium 无法使用该数据,因为它已在使用中。

希望您喜欢这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.