/// <summary> /// Checks if local driver version is same with driver version from repo /// </summary> /// <param name="type">Driver type</param> /// <param name="executingPath">Driver location path</param> /// <param name="version">If version specified, checks if local driver version is equals with specified driver version from repo</param> /// <returns>True - drivers version is same, else false</returns> public static bool IsLocalVersionLatestVersion(DriverFactory.DriverTypes type, string executingPath, string version = "") { bool result = false; string latestVersion = version == "" ? GetLatestVersionNumber(type) : version; string driverBinaryName = ""; switch (type) { case DriverFactory.DriverTypes.Chrome: driverBinaryName = new ChromeConfig().GetBinaryName(); result = WebDriverManagerHelper.CheckDriverVersionFromExe(Path.Combine(executingPath, driverBinaryName), latestVersion); break; case DriverFactory.DriverTypes.Firefox: driverBinaryName = new FirefoxConfig().GetBinaryName(); result = WebDriverManagerHelper.CheckDriverVersionFromExe(Path.Combine(executingPath, driverBinaryName), latestVersion); break; case DriverFactory.DriverTypes.IE: driverBinaryName = new InternetExplorerConfig().GetBinaryName(); result = WebDriverManagerHelper.CheckDriverVerionFormExeAttributes(Path.Combine(executingPath, driverBinaryName), latestVersion); break; default: break; } return(result); }
/// <summary> /// Checks if local driver version is same with driver version from repo /// </summary> /// <param name="type">Driver type</param> /// <param name="executingPath">Driver location path</param> /// <param name="version"> /// If version specified, checks if local driver version is equals with specified driver version from /// repo /// </param> /// <returns>True - drivers version is same, else false</returns> public static bool IsLocalVersionLatestVersion(DriverType type, string executingPath, string version = "") { var result = false; var latestVersion = version == "" ? GetLatestVersionNumber(type) : version; string driverBinaryName; switch (type) { case DriverType.Chrome: driverBinaryName = new ChromeConfig().GetBinaryName(); result = Path.Combine(executingPath, driverBinaryName).CheckDriverVersionFromExe(latestVersion); break; case DriverType.Firefox: driverBinaryName = new FirefoxConfig().GetBinaryName(); result = Path.Combine(executingPath, driverBinaryName).CheckDriverVersionFromExe(latestVersion); break; case DriverType.IE: driverBinaryName = new InternetExplorerConfig().GetBinaryName(); result = Path.Combine(executingPath, driverBinaryName).CheckDriverVersionFormExeAttributes(latestVersion); break; } return(result); }
protected void FirefoxVersionListTest() { var browserConfig = new FirefoxConfig(); var version = browserConfig.GetDriverVersion("58"); Assert.NotEmpty(version); Assert.Equal("0.25.0", version); }
public void FirefoxVersionResultNotEmptyAndMatch() { var firefoxConfig = new FirefoxConfig(); var version = firefoxConfig.GetLatestVersion(); var regex = new Regex(@"^\d+\.\d+\.\d+$"); var match = regex.Match(version); Assert.NotEmpty(version); Assert.True(match.Success); }
/// <summary> /// Downloads driver from repo /// </summary> /// <param name="type">Driver type</param> /// <param name="version">Version number</param> /// <returns>Path of driver location</returns> private static string GetDriverVersion(DriverFactory.DriverTypes type, string version = "") { string driverFullPath = ""; string executingPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory); string binaryName = ""; string url = ""; string latestVersionNumber = version == "" ? GetLatestVersionNumber(type) : version; Architecture currnetArchitecture = ArchitectureHelper.GetArchitecture(); switch (type) { case DriverFactory.DriverTypes.Chrome: ChromeConfig cConfig = new ChromeConfig(); binaryName = cConfig.GetBinaryName(); url = currnetArchitecture == Architecture.X32 ? cConfig.GetUrl32() : cConfig.GetUrl64(); url = UrlHelper.BuildUrl(url, latestVersionNumber); break; case DriverFactory.DriverTypes.Firefox: FirefoxConfig fConfig = new FirefoxConfig(); binaryName = fConfig.GetBinaryName(); url = currnetArchitecture == Architecture.X32 ? fConfig.GetUrl32() : fConfig.GetUrl64(); url = UrlHelper.BuildUrl(url, latestVersionNumber); break; case DriverFactory.DriverTypes.IE: InternetExplorerConfig ieConfig = new InternetExplorerConfig(); binaryName = ieConfig.GetBinaryName(); url = currnetArchitecture == Architecture.X32 ? ieConfig.GetUrl32() : ieConfig.GetUrl64(); url = UrlHelper.BuildUrl(url, latestVersionNumber); break; default: break; } string driverLocationPath = version == "" ? Path.Combine(executingPath, type.ToString()) : Path.Combine(Path.Combine(executingPath, type.ToString()), version); driverFullPath = Path.Combine(driverLocationPath, binaryName); if (!IsLocalVersionLatestVersion(type, driverLocationPath, version)) { if (File.Exists(driverFullPath)) { File.Delete(driverFullPath); } new Manager.DriverManager().SetUpDriver(url, driverFullPath, binaryName); } return(driverLocationPath); }
public void SetupDriver(string browserName) { //Default value IDriverConfig config = new ChromeConfig(); switch (browserName.ToLower()) { case "firefox": config = new FirefoxConfig(); break; } SetupConfig(config); }
/// <summary> /// Get's latest driver version number /// </summary> /// <param name="type">Driver type</param> /// <returns>Version number</returns> private static string GetLatestVersionNumber(DriverType type) { var latestVersion = ""; switch (type) { case DriverType.Chrome: latestVersion = new ChromeConfig().GetLatestVersion(); break; case DriverType.Firefox: latestVersion = new FirefoxConfig().GetLatestVersion(); break; case DriverType.IE: latestVersion = new InternetExplorerConfig().GetLatestVersion(); break; } return(latestVersion); }
/// <summary> /// Using the Web Driver Manager /// </summary> private static void UsingDriverManager(DriverOption driverOption) { IWebDriver webDriver = null; IDriverConfig driverConfig = null; switch (driverOption) { case DriverOption.Chrome: driverConfig = new ChromeConfig(); webDriver = new ChromeDriver(); break; case DriverOption.Edge: driverConfig = new EdgeConfig(); webDriver = new EdgeDriver(); break; case DriverOption.Firefox: driverConfig = new FirefoxConfig(); webDriver = new FirefoxDriver("./"); break; case DriverOption.IE: driverConfig = new InternetExplorerConfig(); webDriver = new InternetExplorerDriver(); break; case DriverOption.Opera: driverConfig = new OperaConfig(); webDriver = new OperaDriver(); break; } new DriverManager().SetUpDriver(driverConfig); webDriver.Navigate().GoToUrl("https://www.google.com"); System.Console.WriteLine($"Title : {webDriver.Title}"); webDriver.Quit(); }
/// <summary> /// Get's latest driver version number /// </summary> /// <param name="type">Driver type</param> /// <returns>Version number</returns> private static string GetLatestVersionNumber(DriverFactory.DriverTypes type) { string latestVersion = ""; switch (type) { case DriverFactory.DriverTypes.Chrome: latestVersion = new ChromeConfig().GetLatestVersion(); break; case DriverFactory.DriverTypes.Firefox: latestVersion = new FirefoxConfig().GetLatestVersion(); break; case DriverFactory.DriverTypes.IE: latestVersion = new InternetExplorerConfig().GetLatestVersion(); break; default: break; } return(latestVersion); }
/// <summary> /// Creates a new WebDriver instance for one of the major web /// browsers. Will wrap the driver in an /// <see cref="EventFiringWebDriver"/>. /// </summary> /// <param name="majorWebDriver"></param> /// <param name="windowSize"></param> /// <param name="track"> /// If false, will not dispose the driver when the factory is /// disposed. /// </param> /// <returns></returns> public IWebDriver CreateDriver(MajorWebDriver majorWebDriver, Size windowSize, bool track = true) { var driver = default(IWebDriver); var driverOpts = default(DriverOptions); var driverConfig = default(IDriverConfig); switch (majorWebDriver) { case MajorWebDriver.Chrome: driverConfig = new ChromeConfig(); driverOpts = new ChromeOptions(); break; case MajorWebDriver.Edge: driverConfig = new EdgeConfig(); driverOpts = new EdgeOptions(); break; case MajorWebDriver.Firefox: driverConfig = new FirefoxConfig(); driverOpts = new FirefoxOptions(); break; case MajorWebDriver.InternetExplorer: driverConfig = new InternetExplorerConfig(); driverOpts = new InternetExplorerOptions(); break; default: throw new NotImplementedException(); } // Download driver if not available locally. driverManager.SetUpDriver(driverConfig); if (isStandalone) { switch (majorWebDriver) { case MajorWebDriver.Chrome: { var opts = driverOpts as ChromeOptions; opts.BinaryLocation = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"; driver = new ChromeDriver(opts); break; } case MajorWebDriver.Edge: { driver = new EdgeDriver(); break; } case MajorWebDriver.Firefox: { var opts = driverOpts as FirefoxOptions; opts.BrowserExecutableLocation = @"C:\Program Files\Mozilla Firefox\firefox.exe"; driver = new FirefoxDriver(opts); break; } case MajorWebDriver.InternetExplorer: { driver = new InternetExplorerDriver(); break; } default: throw new NotImplementedException(); } } else { var d = new RemoteSessionSettings(); d.AddFirstMatchDriverOption(driverOpts); driver = new RemoteWebDriver(d); } // Set the window size. driver.Manage().Window.Size = windowSize; // Wrap with EventFiringWebDriver. //driver = new EventFiringWebDriver(driver); if (track) { trackedDrivers.Add(driver); } return(driver); }