【发布时间】:2018-03-02 16:38:15
【问题描述】:
在过去的 2 天里,我一直在尝试找到一种方法来使用不同的配置文件启动 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 临时目录。
附:我使用chrome user-data-dir=C:\SeleniumProfiles 命令通过命令提示符创建的当前 C:\SeleniumProfiles 目录
附: 2:我的错误很简单,我忘了把选项放在新驱动的构造函数中。正如 Tarun 所说,user-data-dir 只为 Chrome 提供了包含配置文件的目录,然后我们需要使用 profile-directory 参数来提供包含所需配置文件的子目录。
【问题讨论】:
-
您实际上没有使用 options 变量。您需要像这样向 chromedriver 添加选项:
IWebDriver driver = new ChromeDriver(options ); -
神圣.....谢谢大声笑我不知道我是怎么错过的:D
-
对,现在它可以工作了,但是无论我给它的配置文件的目录是什么,它都会在我指定的目录中创建另一个默认目录,并且它不使用我指定的配置文件中的设置。所以当我给它“C:\SeleniumProfiles\Default”时,chrome://version 中的配置文件路径变为“C:\SeleniumProfiles\Default\Default”
-
发生了 :) 乐于助人
标签: c# google-chrome selenium selenium-webdriver selenium-chromedriver