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

时间:2016-03-14 10:23:04

标签: selenium webdriver ui-automation firefox-marionette

有人可以帮助我解决以下问题。

虽然我正在尝试初始化浏览器,但我得到了“错误”错误'异常。

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版本运行。

感谢。

2 个答案:

答案 0 :(得分:2)

所以我遇到了' os错误'当我试图让Marionette工作时的问题。在我的案例中问题的根源是我试图使用一些名为“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例外。

希望这有帮助

答案 1 :(得分:0)

也许DesiredCapabilities会起作用。

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