在过去的两天里,我一直在尝试找到一种使用其他配置文件启动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目录
chrome user-data-dir=C:\SeleniumProfiles
PS 2:我的错误很简单,我忘记将选项放在新驱动程序的构造函数中。正如塔伦(Tarun)所说的那样,user-data- dir仅给Chrome提供包含配置文件的目录,然后我们需要使用profile-directory参数来给包含所需配置文件的子目录。
user-data- dir
profile-directory
您根本不会使用options对象。
IWebDriver driver = new ChromeDriver();
应该
IWebDriver driver = new ChromeDriver(options);
编辑1-Chrome个人资料和用户
Chrome的用户数据目录用于存储配置文件。在此目录中,可以维护多个配置文件。有两个参数可以使用
如果仅user-data-directory指定,则将使用Default相同目录。如果profile-directory指定,user- data-directory则使用内的目录
user-data-directory
Default
user- data-directory