Exemple #1
0
        /// <summary>
        /// Get the default web driver (for the specified browser type) based on the test run configuration
        /// </summary>
        /// <param name="browser">The type of browser</param>
        /// <returns>A web driver</returns>
        public static IWebDriver GetBrowserWithDefaultConfiguration(BrowserType browser)
        {
            IWebDriver webDriver = null;
            TimeSpan   timeout   = SeleniumConfig.GetCommandTimeout();
            string     size      = SeleniumConfig.GetBrowserSize();

            try
            {
                switch (browser)
                {
                case BrowserType.IE:
                    webDriver = GetIEDriver(timeout, GetDefaultIEOptions(), size);
                    break;

                case BrowserType.Firefox:
                    webDriver = GetFirefoxDriver(timeout, GetDefaultFirefoxOptions(), size);
                    break;

                case BrowserType.Chrome:
                    webDriver = GetChromeDriver(timeout, GetDefaultChromeOptions(), size);
                    break;

                case BrowserType.HeadlessChrome:
                    webDriver = GetHeadlessChromeDriver(timeout, GetDefaultHeadlessChromeOptions(size));
                    break;

                case BrowserType.Edge:
                    webDriver = GetEdgeDriver(timeout, GetDefaultEdgeOptions(), size);
                    break;

                case BrowserType.Remote:
                    webDriver = new RemoteWebDriver(SeleniumConfig.GetHubUri(), GetDefaultRemoteOptions().ToCapabilities(), SeleniumConfig.GetCommandTimeout());
                    break;

                default:
                    throw new ArgumentException(StringProcessor.SafeFormatter("Browser type '{0}' is not supported", browser));
                }

                return(webDriver);
            }
            catch (Exception e)
            {
                if (e.GetType() == typeof(ArgumentException))
                {
                    throw e;
                }
                else
                {
                    try
                    {
                        // Try to cleanup
                        webDriver?.KillDriver();
                    }
                    catch (Exception quitExecption)
                    {
                        throw new Exception("Web driver setup and teardown failed. Your web driver may be out of date", quitExecption);
                    }
                }

                // Log that something went wrong
                throw new Exception("Your web driver may be out of date or unsupported.", e);
            }
        }