我需要使用 Firefox 的共享配置文件,它不会在退出时被删除。似乎这可以使用 FirefoxProfile
或 FirefoxOptions
来完成。但它们似乎都不起作用:启动 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/