小编典典

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

selenium

在过去的两天里,我一直在尝试找到一种使用其他配置文件启动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");

首先,我尝试直接从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参数来给包含所需配置文件的子目录。


阅读 499

收藏
2020-06-26

共1个答案

小编典典

您根本不会使用options对象。

IWebDriver driver = new ChromeDriver();

应该

IWebDriver driver = new ChromeDriver(options);

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

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

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

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

2020-06-26