c# - 无法使用 C# 在 Selenium WebDriver 中使用现有的 Firefox 配置文件

标签 c# selenium firefox asp.net-core asp.net-core-2.0

我需要使用 Firefox 的共享配置文件,它不会在退出时被删除。似乎这可以使用 FirefoxProfileFirefoxOptions 来完成。但它们似乎都不起作用:启动 geckodriver 时,它使用这样的临时配置文件

1507646897935 mozrunner::runner INFO Running command: "C:\Program Files\Mozilla Firefox\firefox.exe" "-marionette" "-profile" "C:\Users\\AppData\Local\Temp\rust_mozprofile.uzI9KAmLQ1zP"

调试时,我注意到配置文件的属性 ProfileDirectory 始终为 null。

var profileManager = new FirefoxProfileManager();
var profile = profileManager.GetProfile("Test");
var driver = new FirefoxDriver(profile);

配置文件 Test 之前是使用 firefox -p 手动创建的。我也试过像这样使用它的位置:

var profile = new FirefoxProfile(@"C:\Users\<MyUsername>\TestProfile", deleteSourceOnClean: false);

但同样的问题,无法弄清楚为什么这不起作用。

用过的软件

  • 壁虎驱动程序 0.19.0
  • Selenium.Firefox.WebDriver 2.0.0 (NuGet)
  • Selenium.WebDriver 3.6.0 (NuGet)
  • ASP.NET 核心 2.0

最佳答案

通过将个人资料的路径作为常规 CLI 参数传递给 Chrome 解决了这个问题:

var options = new ChromeOptions();
options.AddArgument(@"--user-data-dir=C:\Users\<MyUsername>\TestProfile");
var driver = new ChromeDriver(options);

应该也适用于 Firefox。但我需要切换到 Chrome,直到 FF 驱动程序中的另一个错误得到修复。这根本不是完全干净的解决方案,但它可以作为一种解决方法,直到找到更好的解决方案。

关于c# - 无法使用 C# 在 Selenium WebDriver 中使用现有的 Firefox 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46669856/

相关文章:

c# - 解析字符串输入 C#

java - 如何让 Selenium WebDriver (Java) 单击此按钮?

css - 父级使用绝对定位时,Chrome/Firefox 不一致

java - 使用 maven 命令运行测试时传递用户名

java - 如何在文本框中输入左括号

javascript - 为什么 getElementsByTagName 返回未定义?

javascript - Google map 标记出现在 Chrome 中,但不出现在 Firefox 或 IE 中

c# - 具有 beginwait 函数的信号量

c# - 如何在txt的新行中添加每个字典的值?

c# - 不同计算机上的 WPF 应用程序不显示窗口