2016-11-17 36 views
4

更新硒在Visual Studio 3.0和Firefox到47.0,現在我得到這個錯誤,當我嘗試使用本地webdriver模式: geckodriver.exe文件不存在於當前目錄或PATH環境變量的目錄中。如何設置硒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瀏覽器。

從這裏下載https://github.com/mozilla/geckodriver/releases

最新geckodriver你有兩個選擇:

  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,謝謝。更新。 –