C#Selenium使用其他用户个人资料启动Chrome

Dar*_*und 4 c# selenium google-chrome selenium-chromedriver selenium-webdriver

在过去的两天里,我一直在尝试找到一种使用其他配置文件启动Chrome的方法,但无济于事。不管我做什么,Selenium为chrome加载的配置文件始终是一些临时配置文件,例如“ C:\ Users \ DARKBO〜1 \ AppData \ Local \ Temp \ scoped_dir14308_25046 \ Default”

我尝试了以下代码:

ChromeOptions options = new ChromeOptions();
options.AddArgument(@"user-data-dir=C:\SeleniumProfiles\Default");

IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("chrome://version");
Run Code Online (Sandbox Code Playgroud)

首先,我尝试直接从Chrome文件夹中使用配置文件的目录,但没有用。然后,我创建了一个新文件夹并将配置文件移到那里,我尝试在C:\和D:\中都这样做。没什么区别。我试过像现在在代码中一样运行user-data-dir参数,并在它前面加上-。我试过使用不带@符号的双反斜杠,还是什么也没有。不管我做什么,配置文件目录始终是Selenium临时目录。

PS我使用chrome user-data-dir=C:\SeleniumProfiles命令通过命令提示符创建的当前C:\ SeleniumProfiles目录

PS 2:我的错误很简单,我忘记将选项放在新驱动程序的构造函数中。正如塔伦(Tarun)所说的那样,user-data-dir仅给Chrome提供包含配置文件的目录,然后我们需要使用profile-directory参数来给包含所需配置文件的子目录。

Tar*_*ani 5

您根本不会使用options对象。

IWebDriver driver = new ChromeDriver();
Run Code Online (Sandbox Code Playgroud)

应该

IWebDriver driver = new ChromeDriver(options);
Run Code Online (Sandbox Code Playgroud)

编辑1-Chrome个人资料和用户

Chrome的用户数据目录用于存储配置文件。在此目录中,可以维护多个配置文件。有两个参数可以使用

  • 用户数据目录
  • 配置文件目录

如果仅user-data-directory指定,则将使用Default相同目录。如果profile-directory指定,user-data-directory则使用内的目录

  • 可以,您还需要设置“profile-directory”参数。因此,如果配置文件是“c:\A\B\C”,则“user-data-dir=C:\A\B”和“profile-directory=C” (2认同)