2016-11-17 8 views
4

Обновлено селен в визуальной студии до 3.0 и firefox до 47.0, и теперь я получаю эту ошибку, когда я пытаюсь используйте локальный режим webdriver: Файл geckodriver.exe не существует в текущем каталоге или в каталоге переменной среды PATH.Как установить selenium 3.0, получить ошибку «Файл geckodriver.exe не существует ...» в C#

Когда я использую удаленный режим (seleniumhub), он отлично работает, даже если он использует версию firefox 45.0.

Пытался найти несколько примеров, но ничего не нашел для C#, только для java и все еще не мог заставить его работать.

моя установка WebDriver:

switch (ConfigurationManager.AppSettings["WebDriverMode"].ToLower()) 
       { 
        case "local": 
         switch (ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower()) 
         { 
          case "firefox": 
           driver = new AdvancedFirefoxDriver(); 
           break; 
          case "ie": 
           driver = new AdvancedInternetExplorerDriver(); 
           break; 
          case "chrome": 
           driver = new AdvancedChromeDriver(); 
           break; 
          default: 
           throw new NotImplementedException(string.Format("WebDriverBrowserCapabilities of \"{0}\" is not implemented for {1} mode", ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower(), ConfigurationManager.AppSettings["WebDriverMode"].ToLower())); 
         } 

         break; 
        case "remote": 
         var huburl = new Uri(ConfigurationManager.AppSettings["SeleniumHubAddress"]); 
         DesiredCapabilities capabilities; 
         switch (ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower()) 
         { 
          case "firefox": 
           capabilities = DesiredCapabilities.Firefox(); 
           break; 
          case "ie": 
           capabilities = DesiredCapabilities.InternetExplorer(); 
           break; 
          case "chrome": 
           capabilities = DesiredCapabilities.Chrome(); 
           break; 
          default: 
           throw new NotImplementedException(string.Format("WebDriverBrowserCapabilities of \"{0}\" is not implemented for {1} mode", ConfigurationManager.AppSettings["WebDriverBrowserCapabilities"].ToLower(), ConfigurationManager.AppSettings["WebDriverMode"].ToLower())); 
         } 

         capabilities.IsJavaScriptEnabled = true; 
         driver = new AdvancedRemoteWebDriver(huburl, capabilities); 
         break; 
        default: 
         throw new NotImplementedException(); 
       } 

ответ

4

С селеном 3.0, вы должны использовать geckodriver для Firefox браузера.

скачать последние geckodriver здесь https://github.com/mozilla/geckodriver/releases

У вас есть два варианта:

  1. введите путь geckodriver в ОС Windows переменной среды операционной системы PATH.
  2. Или укажите адрес geckodriver.exe программно следующим образом.

System.Environment.SetEnvironmentVariable("webdriver.gecko.driver",@"/path/to/geckodriver.exe"

Примечание: перезагрузка системы может потребоваться, если вы установите переменную PATH среды.

Из Firefox 47 и далее (исключая его), Selenium использует возможности geckodriver по умолчанию. Для 47 и предыдущих версий вам может потребоваться отключить эту возможность, чтобы Selenium мог использовать встроенную поддержку Firefox, как мы привыкли работать с этими версиями.

JAVA версия для достижения той же:

DesiredCapabilities d = new DesiredCapabilities(); 
d.setCapability("marionette", false); // to disable marionette. 
WebDriver driver = new FirefoxDriver(d); 

Ссылки:

  1. how to set system properties in C#
  2. https://msdn.microsoft.com/en-us/library/z46c489x.aspx
  3. https://superuser.com/questions/317631/setting-path-in-windows-7-command-prompt
  4. https://stackoverflow.com/a/40466109/2575259
+1

Это должно быть "webdriver.gecko.driver" –

+1

@NisimNaim, спасибо. обновлено. –

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

  • Нет связанных вопросов^_^