我想加载一个使用 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:\”并用正斜杠替换所有反斜杠。 因此,根据最初的问题,这应该可以加载默认配置文件:
options.AddArgument("user-data-dir=/Users/User/AppData/Local/Google/Chrome/User Data");
您用于常规任务的默认 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/");
在这里您将找到关于
我知道一个解决方法。只需将
C:\\Users\\Andrea\\AppData\\Local\\Google\\Chrome\\User Data
复制到
c:\myUserData
(路径中没有空格)。 然后添加参数。
options.AddArgument("user-data-dir=C:\\myUserData");
chromeOptions.AddArguments("user-data-dir=C:\\Users\\ABC\\AppData\\Local\\Google\\Chrome\\User Data");
chromeOptions.AddArguments("profile-directory=Profile 2");
Selenium 无法使用该数据,因为它已在使用中。
希望您喜欢这有帮助。