コード例 #1
0
        /// <summary>
        /// Setup our test
        /// </summary>
        /// <param name="webDriverInitStrategy">the webDriver init strategy</param>
        /// <param name="browser">the template to test on</param>
        /// <param name="baseURL">the baseURL of our testsystem</param>
        /// <param name="languageCode">the languageCode to test on</param>
        /// <param name="timeOut">A optional timeout</param>
        void ITestable.SetupTest(WebDriverInitStrategy webDriverInitStrategy, Browser browser, string baseURL, string languageCode, int timeOut)
        {
            RunBeforeTestStartMethods();

            TestStatusManager.IsCanceled = false;

            /*if (timeOut != 0)
             *      Settings.Default.TestTimeout = timeOut;*/


            IWebDriverFactory webDriverFactory;

            switch (webDriverInitStrategy)
            {
            case WebDriverInitStrategy.SeleniumGrid:
                webDriverFactory = new RemoteWebDriverFactory();
                break;

            case WebDriverInitStrategy.SeleniumLocal:
                webDriverFactory = new LocalWebDriverFactory();
                break;

            default:
                webDriverFactory = new LocalWebDriverFactory();
                break;
            }

            _webDriver = webDriverFactory.GetWebDriver(browser, languageCode);
            SetupTest(_webDriver, baseURL, languageCode);
        }
 /// <summary>
 /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
 /// </summary>
 /// <param name="disposing"></param>
 private void Dispose(bool disposing)
 {
     if (disposing)
     {
         LocalWebDriverFactory?.Dispose();
         RemoteWebDriverFactory?.Dispose();
     }
 }
 public void RemoteWebDriverFactoryWorks(
     PlatformType platformType,
     Browser browser,
     BrowserVisibility browserVisibility = BrowserVisibility.OnScreen)
 {
     Driver = RemoteWebDriverFactory
              .GetWebDriver(browser, platformType, WindowSize.Fhd, browserVisibility == BrowserVisibility.Headless);
     Assertions.AssertThatPageCanBeLoaded(Driver);
     Driver.IsRunningHeadless().Should()
     .Be(browserVisibility == BrowserVisibility.Headless,
         $"{browserVisibility.ToString()} was requested");
 }
        /// <summary>
        /// Return a WebDriver instance of the given configuration.
        /// </summary>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public IWebDriver GetWebDriver(IWebDriverConfiguration configuration)
        {
            Logger.Info($"WebDriver requested using {configuration}");
            IWebDriver driver = configuration.IsLocal ?
                                LocalWebDriverFactory.GetWebDriver(configuration) :
                                RemoteWebDriverFactory.GetWebDriver(configuration);

            if (IsDebugEnabled)
            {
                IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
                Logger.Debug($"{driver} successfully launched. Agent String: {js.ExecuteScript("return navigator.userAgent;")}");
            }

            return(driver);
        }
コード例 #5
0
        private static IDriverFactory _GetDriverFactory(DriverSettings driverSettings)
        {
            IDriverFactory driverFactory = null;

            if (driverSettings.HubType.EnumValue.Equals(HubType.None))
            {
                switch (driverSettings.Browser.EnumValue)
                {
                case Browser.Chrome:
                {
                    driverFactory = new ChromeDriverFactory();
                    break;
                }

                case Browser.Firefox:
                {
                    driverFactory = new FirefoxDriverFactory();
                    break;
                }
                    //TODO: handle all cases
                }
            }
            switch (driverSettings.Platform.EnumValue)
            {
            case Platform.Windows:
            case Platform.Linux:
            case Platform.Mac:
            {
                driverFactory = new RemoteWebDriverFactory();
                break;
            }

            case Platform.iOS:
            {
                driverFactory = new IOSDriverFactory();
                break;
            }

            case Platform.Android:
            {
                driverFactory = new AndroidDriverFactory();
                break;
            }
            }
            return(driverFactory);
        }
        /// <summary>
        /// Return a WebDriver instance of the given configuration.
        /// </summary>
        /// <param name="browser"></param>
        /// <param name="windowSize"></param>
        /// <param name="isLocal"></param>
        /// <param name="platformType"></param>
        /// <param name="headless"></param>
        /// <param name="windowCustomSize"></param>
        /// <returns></returns>
        public IWebDriver GetWebDriver(Browser browser, WindowSize windowSize = WindowSize.Hd, bool isLocal = true,
                                       PlatformType platformType = PlatformType.Any, bool headless          = false, Size windowCustomSize = new Size())
        {
            string configurationDescription = new StringBuilder()
                                              .Append($"Browser: {browser.ToString()}")
                                              .Append(headless ? "headless" : "on screen")
                                              .Append($"WindowSize enum: {windowSize.ToString()}, ")
                                              .Append($"{((windowSize == WindowSize.Custom || windowSize == WindowSize.Defined) ? $"Size: {windowCustomSize.Width} x {windowCustomSize.Height}, " : string.Empty)}")
                                              .Append(isLocal ? "running locally)" : $"running remotely on {RemoteWebDriverFactory.GridUri} on platform: {platformType}.)")
                                              .ToString();

            Logger.Info($"WebDriver requested using parameters: {configurationDescription}");
            IWebDriver driver = isLocal ?
                                LocalWebDriverFactory.GetWebDriver(browser, windowSize, headless, windowCustomSize) :
                                RemoteWebDriverFactory.GetWebDriver(browser, platformType, windowSize, headless, windowCustomSize);

            if (IsDebugEnabled)
            {
                IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
                Logger.Debug($"{driver} successfully launched. Agent String: {js.ExecuteScript("return navigator.userAgent;")}");
            }

            return(driver);
        }