Selenium Firefox марионетка драйвер with.NET C#

Я использую селен (http://www.seleniumhq.org/) недавно для целей тестирования. Он случайно перестал работать, и я считаю, что это связано с тем, что Selenium WebDriver 2.53.0 больше не совместим с Firefox 47 (компонент WebDriver, который обрабатывает браузеры Firefox (FirefoxDriver), был прекращен).

марионетка ([https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver#.NET][2]) Следующее поколение FirefoxDriver и я пытались заставить это работать на моей машине, но не повезло.

Я до сих пор загрузил драйвер, переименовал файл в провода.exe и сохраняется в корневом каталоге моего сайта. Затем я добавил следующий код:

string strWires = @"Z:Web_DevelopmentWebsitestestwires.exe";
Environment.SetEnvironmentVariable("webdriver.gecko.driver", strWires);

FirefoxOptions options = new FirefoxOptions();
options.IsMarionette = true;
FirefoxDriver driver = new FirefoxDriver(options);
Я получаю следующее сообщение об ошибке:

" исключение типа OpenQA.Селен.DriverServiceNotFoundException' произошло в WebDriver.dll, но не был обработан в user код

дополнительная информация: провода.EXE-файл не существует в текущий каталог или в каталоге переменной среды PATH. Драйвер можно скачать по github.com/jgraham/wires/releases."

было бы очень признательно, если кто-нибудь знает, как заставить водителя марионетки работать с селеном (или может даже просто указать мне в правильном направлении) и может предоставить шаг за шагом инструкции?

спасибо,

Даниил

1 ответов


марионетка, кажется, хочет использовать ночную сборку FireFox. Скачать Geckodriver, переименовать его в провода.exe, копировать на выход. Это работает для меня (FireFox 47 и Selenium 2.53.0):

var driverService = FirefoxDriverService.CreateDefaultService();
driverService.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
driverService.HideCommandPromptWindow = true;
driverService.SuppressInitialDiagnosticInformation = true;

var driver = new FirefoxDriver(driverService, new FirefoxOptions(), TimeSpan.FromSeconds(60));