Ejemplo n.º 1
0
        /// <summary>
        /// Reflection does not behave the same way from a packaged library as an included project.
        /// https://alexanderontesting.com/2018/12/19/releasing-a-net-standard-library-lessons-learned-the-hard-way/
        /// </summary>
        /// <param name="browserType"></param>
        /// <param name="defaultTimeOut"></param>
        public static void StartBrowser(BrowserTypes browserType = BrowserTypes.Chrome, int defaultTimeOut = 45)
        {
            switch (browserType)
            {
            case BrowserTypes.Chrome:
                // Reflection may fail and require an instance class
                Browser = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
                //Browser = StaticWebDriverFactory.GetLocalWebDriver(browserType, true);
                break;

            case BrowserTypes.Firefox:
                // Reflection may fail and require an instance class
                Browser = new FirefoxDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
                break;

            case BrowserTypes.InternetExplorer:
                Browser = new InternetExplorerDriver();
                break;

            default:
                Browser = new ChromeDriver();
                break;
            }
            BrowserWait = new WebDriverWait(WebDriver.Browser, TimeSpan.FromSeconds(defaultTimeOut));
            //BrowserWait = new WebDriverWait(WebDriver.Browser
            //    , TimeSpan.FromSeconds(ConfigurationService.Instance.GetWebSettings().Chrome.PageLoadTimeout));
        }
Ejemplo n.º 2
0
 private static Browser GetNewBrowser(BrowserTypes browserType)
 {
     return(new Browser(browserType, ThisLog)
     {
         WaitTemplateMethod = WaitWhileBodyLoading
     });
 }
Ejemplo n.º 3
0
        public static IWebDriver GetLocalWebDriver(BrowserTypes browser, bool headless = false)
        {
            if (headless && !(browser == BrowserTypes.Chrome || browser == BrowserTypes.Firefox))
            {
                throw new ArgumentException($"Headless mode is not currently supported for {browser}.");
            }

            switch (browser)
            {
            case BrowserTypes.Firefox:
                return(GetLocalWebDriver <FirefoxDriver, FirefoxOptions>(StaticDriverOptionsFactory.GetFirefoxOptions(headless)));

            case BrowserTypes.Chrome:
                return(GetLocalWebDriver <ChromeDriver, ChromeOptions>(StaticDriverOptionsFactory.GetChromeOptions(headless)));

            case BrowserTypes.InternetExplorer:
                return(GetLocalWebDriver <InternetExplorerDriver, InternetExplorerOptions>(StaticDriverOptionsFactory.GetInternetExplorerOptions()));

            case BrowserTypes.Edge:
                return(GetLocalWebDriver <EdgeDriver, EdgeOptions>(StaticDriverOptionsFactory.GetEdgeOptions()));

            case BrowserTypes.Safari:
                return(GetLocalWebDriver <SafariDriver, SafariOptions>(StaticDriverOptionsFactory.GetSafariOptions()));

            default:
                throw new PlatformNotSupportedException($"{browser} is not currently supported.");
            }
        }
Ejemplo n.º 4
0
        public static void StartBrowser(BrowserTypes browserType = BrowserTypes.Firefox, int defaultTimeOut = 30)
        {
            switch (browserType)
            {
            case BrowserTypes.Firefox:
                SDriver.Browser = new FirefoxDriver();
                break;

            case BrowserTypes.InternetExplorer:
                SDriver.Browser = new InternetExplorerDriver();
                break;

            case BrowserTypes.Chrome:
                var chromeOptions = new ChromeOptions();
                chromeOptions.AddUserProfilePreference("download.default_directory", Config.DefaultFileDownloadPath);
                chromeOptions.AddUserProfilePreference("intl.accept_languages", "nl");
                chromeOptions.AddUserProfilePreference("disable-popup-blocking", "true");
                chromeOptions.AddUserProfilePreference("Proxy", "");
                SDriver.Browser = new ChromeDriver(chromeOptions);
                SDriver.Browser.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromMinutes(2));
                SDriver.Browser.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromMinutes(2));
                break;

            default:
                break;
            }
            BrowserWait = new WebDriverWait(SDriver.Browser, TimeSpan.FromSeconds(defaultTimeOut));
        }
Ejemplo n.º 5
0
        public void Start(BrowserTypes browserTypes = BrowserTypes.Chrome)
        {
            switch (browserTypes)
            {
            case BrowserTypes.Chrome:
                var options = new ChromeOptions();
                options.AddUserProfilePreference("download.default_directory", BaseConfiguration.NewAppTestDir);
                options.AddUserProfilePreference("profile.default_content_setting_values.automatic_downloads", 1);

                driver = new ChromeDriver(options);
                break;

            case BrowserTypes.Firefox:
                var firefoxOptions = new FirefoxOptions();
                firefoxOptions.SetPreference("browser.download.dir", BaseConfiguration.NewAppTestDir);
                firefoxOptions.SetPreference("browser.download.folderList", 2);
                firefoxOptions.SetPreference("pdfjs.disabled", true);
                firefoxOptions.SetPreference("browser.helperApps.neverAsk.saveToDisk", "image/png,image/jpeg,application/pdf");

                driver = new FirefoxDriver(firefoxOptions);
                break;

            case BrowserTypes.InternetExplorer:
                driver = new InternetExplorerDriver();
                break;
            }
        }
Ejemplo n.º 6
0
        public static void StartBrowser(BrowserTypes browserType = BrowserTypes.Chrome, int defaultTimeOut = 30)
        {
            switch (browserType)
            {
            case BrowserTypes.Firefox:
                Driver.Browser = new FirefoxDriver();
                break;

            case BrowserTypes.InternetExplorer:
                Driver.Browser = new InternetExplorerDriver();
                break;

            case BrowserTypes.Chrome:
                Driver.Browser = new ChromeDriver();
                break;

            case BrowserTypes.Edge:
                Driver.Browser = new EdgeDriver();
                break;

            default:
                Driver.Browser = new ChromeDriver();
                break;
            }
            BrowserWait = new WebDriverWait(Driver.Browser, TimeSpan.FromSeconds(defaultTimeOut));
        }
Ejemplo n.º 7
0
        public static void StartBrowser(BrowserTypes browserType = BrowserTypes.Chrome, int defaultTimeOut = 3000, bool headless = false)
        {
            ChromeOptions options = new ChromeOptions();

            if (headless)
            {
                options.AddArguments("--window-size=1920,1080");
                options.AddArguments("--start-maximized");
                options.AddArguments("--headless");
            }

            switch (browserType)
            {
            case BrowserTypes.Firefox:
                break;

            case BrowserTypes.InternetExplorer:
                break;

            case BrowserTypes.Chrome:

                driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), options);
                driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
                break;

            default:
                break;
            }
        }
Ejemplo n.º 8
0
        public void RequestingUnsupportedHeadlessBrowserThrowsInformativeException(BrowserTypes browser)
        {
            Action act = () => StaticWebDriverFactory.GetLocalWebDriver(browser, true);

            act.ShouldThrow <ArgumentException>($"because headless mode is not supported on {browser}.")
            .Message.ShouldBe($"Headless mode is not currently supported for {browser}.");
        }
Ejemplo n.º 9
0
        public static void StartBrowser(BrowserTypes browserType = BrowserTypes.Chrome, int defaultTimeOut = 45)
        {
            //Save off start time so that we can use it later
            DisposeDriverService.TestRunStartTime = DateTime.Now;
            switch (browserType)
            {
            case BrowserTypes.Edge:
                Browser = new EdgeDriver();
                break;

            case BrowserTypes.Chrome:
                Browser = new ChromeDriver();
                break;

            case BrowserTypes.HeadlessChrome:
                var chromeOptions = new ChromeOptions();
                chromeOptions.AddArguments("headless");
                chromeOptions.AddArguments("window-size=1920,1080");
                var chromeDriverService = ChromeDriverService.CreateDefaultService();
                Browser = new ChromeDriver(chromeDriverService, chromeOptions);
                break;

            default:
                Browser = new ChromeDriver();
                break;
            }
            Browser.Manage().Window.Maximize();
            BrowserWait = new WebDriverWait(Driver.Browser, TimeSpan.FromSeconds(defaultTimeOut));
        }
        private void SetupTestConfiguration(ServerTypes serverType, BrowserTypes browserType)
        {
            if (testConfiguration == null)
            {
                testConfiguration = new ConfigurationData(serverType, browserType);

                testConfiguration.Log = Log;

                testConfiguration.Completed = TestCompleted;

                testConfiguration.Cancel = delegate() { return(State == States.Cancelling); };

                testConfiguration.Pause = TestPause;

                testConfiguration.Skip = TestSkip;

                testConfiguration.PauseOnStep = TestPauseOnStep;

                testConfiguration.ProcessScreenShot = TestProcessScreenShot;

                testConfiguration.ProcessFile = TestProcessFile;
            }
            else
            {
                testConfiguration.SetBrowser(browserType);

                testConfiguration.SetServer(serverType);
            }
        }
        public IWebDriver InitiateBrowser(IWebDriver browser, BrowserTypes browserType = BrowserTypes.ChromeBrowser)
        {
            var type = browserType;

            switch (type)
            {
            case BrowserTypes.ChromeBrowser:
                browser = new ChromeDriver();
                break;

            case BrowserTypes.FirefoxBrowser:
                browser = new FirefoxDriver();
                break;

            case BrowserTypes.InternetExplorerBrowser:
                browser = new InternetExplorerDriver();
                break;

            case BrowserTypes.EdgeBrowser:
                browser = new EdgeDriver();
                break;

            case BrowserTypes.PhantomBrowser:
                browser = new PhantomJSDriver();
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(browserType), browserType, null);
            }
            return(browser);
        }
Ejemplo n.º 12
0
        public static IWebDriver GetWebDriver(BrowserTypes type)
        {
            IWebDriver driver       = null;
            string     pathToDriver = @"..\..\..\..\Framework\Resources\Drivers";

            switch (type)
            {
            case BrowserTypes.Chrome:
                new DriverManager().SetUpDriver(new ChromeConfig());
                driver = new ChromeDriver(pathToDriver);
                break;

            case BrowserTypes.Firefox:
                new DriverManager().SetUpDriver(new FirefoxConfig());
                driver = new FirefoxDriver(pathToDriver);
                break;

            case BrowserTypes.Edge:
                new DriverManager().SetUpDriver(new EdgeConfig());
                driver = new EdgeDriver(pathToDriver);
                break;

            default:
                throw new ArgumentNullException("Unexpected browser type");
            }
            return(driver);
        }
Ejemplo n.º 13
0
 public BasePage(BrowserTypes bt)
 {
     DisposeDriverService.TestRunStartTime = DateTime.Now;
     WebDriver.StartBrowser(bt);
     WebDriver.Browser.Manage().Window.Maximize();
     BrowserWait = WebDriver.BrowserWait;
     Browser     = WebDriver.Browser;
 }
        public void WhenOverviewPageLoads_PageTitleIsCorrect([BrowserList] BrowserTypes browser)
        {
            Initialize(browser);

            WebDriver.Navigate().GoToUrl(OverviewPageObject.URL);

            Assert.AreEqual(WebDriver.Title, "Birdwatch-Visualizer");
        }
        private void SetupLogFolder(ServerTypes serverType, BrowserTypes browserType, string testName)
        {
            string folder = $"{DateTime.Now.ToString("yyyy-MM-dd")}-{serverType}-{browserType}-{testName}";

            logFolderPath = System.IO.Path.Combine(txtLogPath.Text, folder);

            System.IO.Directory.CreateDirectory(logFolderPath);
        }
Ejemplo n.º 16
0
        // SSO or default user
        //public Login(BrowserTypes bt, ITestOutputHelper output) : base(bt)
        //{
        //    if (UrlSettingsModel.UrlSettings.SingleSignOn == true)
        //    {
        //        Output = output;
        //        SplashScreen = new SplashScreen.SplashScreen(open: false, browser: this.Browser, browserWait: this.BrowserWait, output: Output);
        //        if (UrlSettingsModel.UrlSettings.Site == QS_Constants.SITE.DOE_UAT_QS) //."doeUatQS")
        //        {
        //            Url = UrlDeterminer.GetSite("/");
        //        }
        //        else
        //        {
        //            Url = UrlDeterminer.GetSite("/splashscreen/home.html");
        //        }
        //        //05.29.20 Should I call Open and Load JQuery (below) or just simply Open();
        //        Open(true);
        //        WaitForPinwheel(QS_Constants.PINWHEELOVERLAY);
        //        ScrollDown();
        //        Action_MoveToElement(By.Id("ContinueButton"));
        //        WaitFor.WaitForPageLoad();
        //        SplashScreen.ContinueButton.Click();
        //    }
        //    else
        //    {
        //        Output = output;
        //        //05.29.20 Should I call Open and Load JQuery (below) or just simply Open();
        //        Open(true);
        //        WaitForPinwheel(QS_Constants.PINWHEELOVERLAY);
        //        IsPageTitle("Login");
        //        LoginUser();
        //        WaitForPinwheel(QS_Constants.PINWHEELOVERLAY);
        //    }
        //}

        // TODO : add to HTML Parser
        public Login(BrowserTypes bt, ITestOutputHelper output) : base(bt)
        {
            Output = output;
            Open(true);
            WaitForPinwheel(Core.Common.Constants.PINWHEELOVERLAY);
            IsPageTitle("Login");
            LoginUser();
            WaitForPinwheel(Core.Common.Constants.PINWHEELOVERLAY);
        }
Ejemplo n.º 17
0
        public ConfigurationData(ServerTypes serverType, BrowserTypes browser)
        {
            this.Log = LogConsole;

            this.ServerType  = serverType;
            this.BrowserType = browser;

            ConfigureSettings();
        }
        public void WhenOverviewPageLoads_MostCommonBirdStatExists([BrowserList] BrowserTypes browser)
        {
            Initialize(browser);

            WebDriver.Navigate().GoToUrl(OverviewPageObject.URL);
            var statCardContainer = WebDriver.FindElement(OverviewPageObject.StatisticsCardContainer);

            Assert.IsTrue(statCardContainer.Text.ToLower().Contains("most common bird"));
        }
Ejemplo n.º 19
0
 public Home(RemoteWebDriver _Driver, XmlNode _testNode, Iteration iteration)
 {
     this.Driver       = _Driver;
     this.TestDataNode = _testNode;
     this.Reporter     = iteration;
     this.Browser      = iteration.Browser.Title;
     Locator.Browser   = iteration.Browser.Title;
     pageBrowserType   = AppCommon.GetPageBrowserType(this.Browser);
 }
        public void WhenBreakdownPageLoads_ChartCanvasIsRendered([BrowserList] BrowserTypes browser)
        {
            Initialize(browser);

            WebDriver.Navigate().GoToUrl(BreakdownPageObject.URL);
            var chartCanvas = WebDriver.FindElement(By.TagName("canvas"));

            Assert.IsNotNull(chartCanvas);
        }
        public void WhenOverviewPageLoads_YearCountStatExists([BrowserList] BrowserTypes browser)
        {
            Initialize(browser);

            WebDriver.Navigate().GoToUrl(OverviewPageObject.URL);
            var statCardContainer = WebDriver.FindElement(OverviewPageObject.StatisticsCardContainer);

            Assert.IsTrue(statCardContainer.Text.ToLower().Contains("years worth of data"));
        }
        public void WhenOverviewPageLoads_AllStatTilesAreRendered([BrowserList] BrowserTypes browser)
        {
            Initialize(browser);

            WebDriver.Navigate().GoToUrl(OverviewPageObject.URL);
            var statCardElements = WebDriver.FindElements(OverviewPageObject.StatisticsCards);

            Assert.AreEqual(statCardElements.Count, 6);
        }
        public void WhenOverviewPageLoads_BirdCountDifferenceStatExists([BrowserList] BrowserTypes browser)
        {
            Initialize(browser);

            WebDriver.Navigate().GoToUrl(OverviewPageObject.URL);
            var statCardContainer = WebDriver.FindElement(OverviewPageObject.StatisticsCardContainer);

            Assert.IsTrue(statCardContainer.Text.ToLower().Contains("decrease since 1st") ||
                          statCardContainer.Text.ToLower().Contains("increase since 1st"));
        }
Ejemplo n.º 24
0
        public AuthenticationTest(BrowserTypes browserType)
            : base(browserType)
        {
            _messageErrorList = new List <string>()

            {
                "Возможно, ваша учётная запись заблокирована, или введённое регистрационное имя/пароль неправильны.",
                "Your account may be disabled or blocked or the username/password you entered is incorrect."
            };
        }
        public void WhenBreakdownPageLoads_BreakdownStatsAreRendered([BrowserList] BrowserTypes browser)
        {
            Initialize(browser);

            WebDriver.Navigate().GoToUrl(BreakdownPageObject.URL);
            var controlBar = WebDriver.FindElement(BreakdownPageObject.BreakdownStatsContainer);

            Assert.IsTrue(controlBar.Text.ToLower().Contains("total birds") &&
                          controlBar.Text.ToLower().Contains("different species"));
        }
Ejemplo n.º 26
0
        public void WhenNavigationLoads_ItContainsLinkToTrackerPage([BrowserList] BrowserTypes browser)
        {
            Initialize(browser);

            WebDriver.Navigate().GoToUrl(NavigationPageObject.URL);
            WebDriver.FindElement(NavigationPageObject.Hamburger).Click();
            var link = WebDriver.FindElement(NavigationPageObject.TrackerLink);

            Assert.IsTrue(link.GetAttribute("routerLink") == "/tracker");
        }
        /// <summary>
        /// Returns a ChosenPortalAlias object where the portalId, culture code and isMobile matches
        /// </summary>
        /// <param name="aliases"></param>
        /// <param name="portalId"></param>
        /// <param name="result"></param>
        /// <param name="cultureCode"></param>
        /// <param name="browserType"></param>
        /// <returns>A ChosenPOrtalAlias</returns>
        /// <remarks>Note will return a best-match by portal if no specific culture Code match found</remarks>
        public static PortalAliasInfo GetAliasByPortalIdAndSettings(this IEnumerable<PortalAliasInfo> aliases, int portalId, UrlAction result, string cultureCode, BrowserTypes browserType)
        {
            var aliasList = aliases.ToList();

            var defaultAlias = aliasList.ToList().Where(a => a.PortalID == portalId)
                                        .OrderByDescending(a => a.IsPrimary)
                                        .FirstOrDefault();

            //27138 : Redirect loop caused by duplicate primary aliases.  Changed to only check by browserType/Culture code which makes a primary alias
            var foundAlias = aliasList.Where(a => a.BrowserType == browserType
                                            && (String.Compare(a.CultureCode, cultureCode, StringComparison.OrdinalIgnoreCase) == 0 || String.IsNullOrEmpty(a.CultureCode))
                                            && a.PortalID == portalId)
                        .OrderByDescending(a => a.IsPrimary)
                        .ThenByDescending(a => a.CultureCode)
                        .FirstOrDefault();

			//JIRA DNN-4882 : DevPCI fix bug with url Mobile -> Search alias with culture code
			// START DNN-4882
            if (foundAlias == null)
            {
                foundAlias = aliasList.Where(a => (String.Compare(a.CultureCode, cultureCode, StringComparison.OrdinalIgnoreCase) == 0 || String.IsNullOrEmpty(a.CultureCode))
                                           && a.PortalID == portalId)
					   .OrderByDescending(a => a.IsPrimary)
					   .ThenByDescending(a => a.CultureCode)
					   .FirstOrDefault();
            }
            // END DNN-4882
		
            if (foundAlias != null)
            {
                if(result !=null && result.PortalAlias != null)
                {
                    if (foundAlias.BrowserType != result.PortalAlias.BrowserType)
                    {
                        result.Reason = foundAlias.CultureCode != result.PortalAlias.CultureCode 
                            ? RedirectReason.Wrong_Portal_Alias_For_Culture_And_Browser 
                            : RedirectReason.Wrong_Portal_Alias_For_Browser_Type;
                    }
                    else
                    {
                        if (foundAlias.CultureCode != result.PortalAlias.CultureCode)
                        {
                            result.Reason = RedirectReason.Wrong_Portal_Alias_For_Culture;
                        }
                    }
                }
            }
            else
            {
                foundAlias = defaultAlias;
            }

            //if we didn't find a specific match, return the default, which is the closest match
            return foundAlias;
        }
        public void WhenBreakdownPageLoads_YearDropDownMenuIsRendered([BrowserList] BrowserTypes browser)
        {
            Initialize(browser);

            WebDriver.Navigate().GoToUrl(BreakdownPageObject.URL);
            var controlBar = WebDriver.FindElement(BreakdownPageObject.ControlBar);
            var dropDown   = controlBar.FindElement(By.TagName("mat-select"));

            Assert.IsNotNull(dropDown.Text);
            Assert.IsNotEmpty(dropDown.Text);
        }
Ejemplo n.º 29
0
 public Browser(BrowserTypes browserType)
 {
     ////WebDriverManager.chromedriver().setup();
     //ChromeOptions options = new ChromeOptions();
     ////// this.driver = new ChromeDriver(options);
     //this.driver = new RemoteWebDriver(new Uri(HUB_URL), options);
     SessConfiguration.Browser       = browsersToBeTested[browserType];
     SessConfiguration.Timeout       = TimeSpan.FromSeconds(Constants.MaxTimeOut);
     SessConfiguration.RetryInterval = TimeSpan.FromSeconds(0.5);
     browser = new BrowserSession(SessConfiguration);
     ((RemoteWebDriver)browser.Native).Manage().Window.Maximize();
 }
Ejemplo n.º 30
0
        public static void StartBrowser(BrowserTypes browserTypes = BrowserTypes.Chrome, string url = null)
        {
            switch (browserTypes)
            {
            case BrowserTypes.Chrome:
                Instance = new ChromeDriver();
                break;

            case BrowserTypes.RemoteWebdriver:
                Instance = new RemoteWebDriver(new Uri(url), new ChromeOptions());
                break;
            }
        }
Ejemplo n.º 31
0
 public void InitDriver(BrowserTypes browser)
 {
     if (browser.Equals(BrowserTypes.Chrome))
     {
         driver = new ChromeDriver();
     }
     else if (browser.Equals(BrowserTypes.Firefox))
     {
         driver = new FirefoxDriver();
     }
     driver.Manage().Window.Maximize();
     driver.Navigate().GoToUrl("https://www.foxtrot.com.ua/");
 }
Ejemplo n.º 32
0
 public static void StartBrowser(BrowserTypes browserType = BrowserTypes.Firefox, int defaultTimeOut = 30)
 {
     switch (browserType)
     {
         case BrowserTypes.Firefox:
             Driver.Browser = new FirefoxDriver();
             break;
         case BrowserTypes.InternetExplorer:
             break;
         case BrowserTypes.Chrome:
             break;
         default:
             break;
     }
     BrowserWait = new WebDriverWait(Driver.Browser, TimeSpan.FromSeconds(defaultTimeOut));
 }
 private IEnumerable<WebTester> GetTester(BrowserTypes browserType) {
     switch (browserType) {
         case BrowserTypes.All:
             return new WebTester[] {
                              new IETest(),
                              new FireFoxTest(),
                              new ChromeTest(),
                          };
         case BrowserTypes.FireFox:
             return new[] { new FireFoxTest() };
         case BrowserTypes.IE:
             return new[] { new IETest() };
         case BrowserTypes.Chrome:
             return new[] { new ChromeTest() };
         default:
             throw new ArgumentOutOfRangeException("browserType");
     }
 }
 protected IEnumerable<DesiredCapabilities> GetRemoteTester(BrowserTypes browserType) {
     switch (browserType) {
         case BrowserTypes.All:
             return new[] {
                              DesiredCapabilities.Firefox(),
                              DesiredCapabilities.InternetExplorer(),
                              DesiredCapabilities.Chrome()
                          };
         case BrowserTypes.FireFox:
             return new[] { DesiredCapabilities.Firefox() };
         case BrowserTypes.IE:
             return new[] { DesiredCapabilities.InternetExplorer() };
         case BrowserTypes.Chrome:
             return new[] { DesiredCapabilities.Chrome() };
         default:
             throw new ArgumentOutOfRangeException("browserType");
     }
 }
 public ExecutionBrowserAttribute(BrowserTypes browser)
 {
     this.BrowserType = browser;
 }
Ejemplo n.º 36
0
 public static void GetSettingsByPortalIdAndAlias(this IEnumerable<PortalAliasInfo> aliases, int portalId, string alias, out string culture, out BrowserTypes browserType, out string skin)
 {
     culture = null;
     browserType = BrowserTypes.Normal;
     skin = "";
     foreach (var cpa in aliases)
     {
         if (cpa.PortalID == portalId && String.Compare(alias, cpa.HTTPAlias, StringComparison.OrdinalIgnoreCase) == 0)
         {
             //this is a match
             culture = cpa.CultureCode;
             browserType = cpa.BrowserType;
             //852 : add skin per portal alias
             skin = cpa.Skin;
             break;
         }
     }
 }
 public SeleniumBrowserAttribute(BrowserTypes browsers)
 {
     Browsers = browsers;
 }