无法在 Selenium 和 C# 上使用 Marionette 驱动程序实例化 Firefox。 os 错误

Unable to instantiate Firefox using Marionette driver over Selenium and C#. os error

有人可以帮我解决以下问题吗?

当我尝试初始化浏览器时,出现 'os error' 异常。

var option = new FirefoxOptions();
option.IsMarionette = true;
var driver = new FirefoxDriver(option);

var b = new Browser(driver); // Throws an exception with a message - 'os error'

The screenshot of the exception

请注意,wires.exe 的路径已添加到系统 PATH 中。 Selenium、wires、firefox 都是最新版本。我已经尝试 运行 使用 firefox-stable 和 firefox-developer 版本。

谢谢。

也许 DesiredCapabilities 会起作用。

   DesiredCapabilities capabilities = DesiredCapabilities.Firefox();
   capabilities.SetCapability("marionette", true);
   var driver = new FirefoxDriver(capabilities);

所以当我试图让 Marionette 工作时,我 运行 遇到了 'os error' 问题。在我的案例中,问题的根源是我试图使用一些名为 'Mozilla Firefox Webdriver 0.6.0.1' 的 NuGet 包,我相信它有一个非常旧的版本(现在称为)geckodriver.exe。

我从这里下载了最新版本的驱动https://github.com/mozilla/geckodriver/releases 重命名为 wires.exe 并放入我的工作目录 然后我不得不使用以下代码启动驱动程序。

FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
service.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
Driver = new FirefoxDriver(service);

您启动驱动程序的方式给了我一个 entity not found 异常。

希望对您有所帮助