2016-08-26 5 views
3

Мы запускаем Selenium 2.5.3 в проекте .Net Automation Testing Project как проект NUnit Test.Почему драйвер Selenium GECKO для Firefox 48 не запускает сервер?

Все работает отлично с Firefox 47. Но с Firefox 48 он перестает работать. Я спустил Gecko.exe (версия 9) из github. Я могу почти запустить его, но не совсем.

Я получал эти ошибки: Дополнительная информация: HTTP-запрос на удаленный сервер WebDriver для URL http://localhost:53628/session был пропущен через 30 секунд.

Дополнительная информация: HTTP-запрос на удаленный сервер WebDriver для URL http://localhost:55924/session истекает через 30 секунд.

По-видимому, по умолчанию используются случайные порты. Так я вручную установить его на порт 7500, открыт порт в брандмауэре Windows, и теперь я получил это: Дополнительная информация: Не удается запустить службу драйвера на http://localhost:7500/

Вот мой код в WebDriverFactory:

case WebDriverType.Firefox: 
       Log.Info("Starting Firefox ..."); 

       //string driverPath = 
       // $"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase)}\\wires.exe"; 

       string driverPath = 
        @"C:\Development2\iRePORT\src\test\csharp\Nete.Ireport.EndToEndTests\bin\Debug\geckodriver.exe"; 

       FirefoxDriverService driverService = FirefoxDriverService.CreateDefaultService(); 
       driverService.FirefoxBinaryPath = driverPath; 
       driverService.Port = 7500; 

       FirefoxOptions ffOptions = new FirefoxOptions(); 
       ffOptions.IsMarionette = true; 
       driver = new FirefoxDriver(driverService, ffOptions, TimeSpan.FromSeconds(30)); 

       // driver = new FirefoxDriver(new FirefoxOptions()); 

       Log.Info("Started"); 
       break; 

Я потратил много времени на это, и я чувствую, что я очень близко. Кто-нибудь знает, какую часть мне не хватает?

Я прочитал что-то сейчас, что заставляет меня думать об этой линии;

driverService.FirefoxBinaryPath = driverPath; 

указывает на то, какую версию Firefox установить для использования. я поставлю driverpath и имя исполняемого файла в driverService Конструктора, как это:

case WebDriverType.Firefox: 
       Log.Info("Starting Firefox ..."); 

       //string driverPath = 
       // $"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase)}\\wires.exe"; 

       string driverPath = 
        @"C:\Development2\iRePORT\src\test\csharp\Nete.Ireport.EndToEndTests\bin\Debug"; 
       string driverExecutableName = "geckodriver.exe"; 

       FirefoxDriverService driverService = FirefoxDriverService.CreateDefaultService(driverPath, driverExecutableName); 
       // Don't do this!!! This is the executable to the Firefox Version executable. 
       //driverService.FirefoxBinaryPath = driverPath; 
       driverService.Port = 7500; 

       FirefoxOptions ffOptions = new FirefoxOptions(); 
       ffOptions.IsMarionette = true; 
       driver = new FirefoxDriver(driverService, ffOptions, TimeSpan.FromSeconds(30)); 

       // driver = new FirefoxDriver(new FirefoxOptions()); 

       Log.Info("Started"); 
       break; 

Так что теперь я вернулся, чтобы получить эту ошибку: Дополнительная информация: Не удается запустить службу драйвера на http://localhost:7500/


Также, если у меня есть: driverService.Port = 7200; В нем говорится, что «объект не найден». Я считаю, это означает, что он не может найти Gecko.exe. Если у меня есть: driverService.Port = 7500; Он говорит: Дополнительная информация: Не удается запустить сервис водителя по телефону http://localhost:7500/

+0

Написал ответ здесь http://stackoverflow.com/questions/39005512/selenium-visual-studios-c -sharp-all-chrome-firefox-and-internet-explorer/43372184 # 43372184 которые могут иметь отношение к этому вопросу – donyd

ответ

0

Попробуйте Selenium 3.0.0. У меня также была эта проблема, но я, наконец, управляю всеми вещами для перехода от 2.53.1 до 3.0.0

Смежные вопросы