Example #1
0
        /// <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);
        }
Example #3
0
        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);
        }
Example #5
0
        /// <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();
        }
Example #9
0
        /// <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);
        }
Example #10
0
        /// <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);
        }