2016-06-13 32 views
8

Używam ostatnio Selenium (http://www.seleniumhq.org/) do testowania. Losowo przestał działać i uważam, że dzieje się tak dlatego, że Selenium WebDriver 2.53.0 nie jest już kompatybilny z Firefoksem 47 (komponent WebDriver, który obsługuje przeglądarki Firefox (FirefoxDriver), został przerwany).Sterownik marionetki Selenium Firefox z .NET C#

Marionetka ([https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver#.NET][2]) to następna generacja FirefoxDriver i próbowałem uruchomić to na moim komputerze, ale nie miałem szczęścia.

Do tej pory pobrałem sterownik, przemianowałem plik jako wires.exe i zapisałem w katalogu głównym mojej witryny. I dodaje następujący kod:

string strWires = @"Z:\Web_Development\Websites\test\wires.exe"; 
Environment.SetEnvironmentVariable("webdriver.gecko.driver", strWires); 

FirefoxOptions options = new FirefoxOptions(); 
options.IsMarionette = true; 
FirefoxDriver driver = new FirefoxDriver(options); 

ja otrzymaliśmy następujący komunikat o błędzie Jednakże:

„wyjątek typu«OpenQA.Selenium.DriverServiceNotFoundException» wystąpił w WebDriver.dll ale nie było obsługiwane w kodzie użytkownika

Dodatkowe informacje: plik wires.exe nie istnieje w bieżącym katalogu na lub w katalogu na zmienną PATH sterownik można pobrać pod.github.com/jgraham/wires/releases. "

byłoby bardzo mile widziane, jeśli ktoś wie jak zdobyć kierowca Marionette pracy z selenem (lub może nawet po prostu wskaż mnie we właściwym kierunku) i może dostarczyć instrukcje krok po kroku?

Dzięki,

Daniel

+0

Mam ten sam komunikat o błędzie, jak ty po Pobrałem plik do C:/Windows i przemianował ją. Po odblokowaniu otrzymuję teraz OpenQA.Selenium.WebDriverException: Nie można uruchomić usługi sterownika pod adresem http: // localhost: 49426/ – johnstaveley

+0

Jeśli umieścisz polecenie wires.exe w ścieżce i wykonasz ją bezpośrednio w wierszu polecenia, pojawi się komunikat " Programu nie można uruchomić, ponieważ na komputerze nie ma pliku VCRUNTIME140.dll ". To jest dostępne tutaj: https://www.microsoft.com/en-gb/download/details.aspx?id=48145 – johnstaveley

+0

Jednak zrobiłem to, zainstalowałem i pojawia się w C:/Windows/System32 i nadal daje ten sam błąd. Nawet uruchomiłem program wires.exe z tej samej lokalizacji. – johnstaveley

Odpowiedz

7

Marionette zdaje się chcieć użyć nightly build Firefoksa. Pobierz Geckodriver, zmień nazwę na wires.exe, skopiuj do wyjścia. Działa to dla mnie (Firefox 47 i selen 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)); 
+1

Proszę wyjaśnij to co wieczór. – Drutten