예제 #1
0
        public static By ToSeleniumBy(this Core.By by)
        {
            switch (by.Type)
            {
            case SearchType.Id:
            {
                return(By.Id(by.Value));
            }

            case SearchType.Name:
            {
                return(By.Name(by.Value));
            }

            case SearchType.Tag:
            {
                return(By.TagName(by.Value));
            }

            case SearchType.CssSelector:
            {
                return(By.CssSelector(by.Value));
            }

            case SearchType.XPath:
            {
                return(By.XPath(by.Value));
            }

            default:
            {
                throw new Exception($"Unknown search type: {by.Type}!");
            }
            }
        }
예제 #2
0
 public IEnumerable <TElement> FindAll <TElement>(Core.By by)
     where TElement : class, Core.Controls.IElement
 {
     return(this.elementFinderService.FindAll <TElement>(
                this.driver,
                this.htmlControl.Find, by));
 }
        public static OpenQA.Selenium.By ToSeleniumBy(this Core.By by)
        {
            switch (by.Type)
            {
            case SearchType.Id:
                return(OpenQA.Selenium.By.Id(by.Value));

            case SearchType.Tag:
                return(OpenQA.Selenium.By.TagName(by.Value));

            case SearchType.CssClass:
                return(OpenQA.Selenium.By.ClassName(by.Value));

            case SearchType.XPath:
                return(OpenQA.Selenium.By.XPath(by.Value));

            case SearchType.CssSelector:
                return(OpenQA.Selenium.By.CssSelector(by.Value));

            case SearchType.Name:
                return(OpenQA.Selenium.By.Name(by.Value));

            default:
                throw new Exception(string.Format("Unknown search type: {0}", by.Type));
            }
        }
예제 #4
0
 public IEnumerable <TElement> FindAll <TElement>(Core.By by)
     where TElement : class, Core.Controls.IElement
 {
     return(this.elementFinderService.FindAll <TElement>(
                this,
                this.currentActiveBrowser.Find,
                by));
 }
예제 #5
0
        public TElement Find <TElement>(ISearchContext searchContext, Core.By by)
            where TElement : class, Core.Controls.IElement
        {
            var element = searchContext.FindElement(by.ToSeleniumBy());
            var result  = ResolveElement <TElement>(searchContext, element);

            return(result);
        }
        public TElement Find <TElement>(ISearchContext searchContext, Core.By by)
            where TElement : class, Core.Controls.IElement
        {
            var element = searchContext.FindElement(by.ToSeleniumBy());

            ReturningWrappedElement?.Invoke(this, new NativeElementActionEventArgs(element));
            var result = ResolveElement <TElement>(searchContext, element);

            return(result);
        }
예제 #7
0
        public TElement Find <TElement>(IDriver driver, Find findContext, Core.By by)
            where TElement : class, Core.Controls.IElement
        {
            TElement result = default(TElement);
            string   testingFrameworkExpression = by.ToTestingFrameworkExpression();

            this.WaitForExists(driver, testingFrameworkExpression);
            var element = findContext.ByExpression(by.ToTestingFrameworkExpression());

            result = this.ResolveElement <TElement>(driver, element);

            return(result);
        }
예제 #8
0
        public bool IsElementPresent(Find findContext, Core.By by)
        {
            try
            {
                string controlFindExpression = by.ToTestingFrameworkExpression();
                Manager.Current.ActiveBrowser.RefreshDomTree();
                HtmlFindExpression hfe = new HtmlFindExpression(controlFindExpression);
                Manager.Current.ActiveBrowser.WaitForElement(hfe, 5000, false);
            }
            catch (TimeoutException)
            {
                return(false);
            }

            return(true);
        }
        public TElement Find <TElement>(IDriver driver, Find findContext, Core.By by)
            where TElement : class, Core.Controls.IElement
        {
            TElement result = default(TElement);

            try
            {
                string testingFrameworkExpression = by.ToTestingFrameworkExpression();
                this.WaitForExists(driver, testingFrameworkExpression);
                var element = findContext.ByExpression(by.ToTestingFrameworkExpression());
                result = this.ResolveElement <TElement>(driver, element);
            }
            catch (Exception ex)
            {
                ////# region 9. Failed Tests Аnalysis- Chain of Responsibility Design Pattern
                ////this.excepionAnalyzer.MainApplicationHandler.HandleRequest(ex, driver);
                ////#endregion
                # region 10. Failed Tests Аnalysis- Ambient Context Design Pattern
                var mainApplicationHandler = UnityContainerFactory.GetContainer().Resolve <Handler>(ExceptionAnalyzerConstants.MainApplicationHandlerName);
                mainApplicationHandler.HandleRequest(ex, driver);
                #endregion
                throw;
            }
 public TElement Find <TElement>(Core.By by) where TElement : class, IElement
 {
     return(ElementFinderService.Find <TElement>(WebElement, by));
 }
예제 #11
0
        public static string ToTestingFrameworkExpression(this Core.By by)
        {
            var controlFindExpression = string.Empty;

            switch (by.Type)
            {
            case SearchType.Id:
                controlFindExpression = by.Value.GenerateIdExpression();
                break;

            case SearchType.IdEndingWith:
                controlFindExpression = by.Value.GenerateIdEndingWithExpression();
                break;

            case SearchType.IdContaining:
                controlFindExpression = by.Value.GenerateIdContainingExpression();
                break;

            case SearchType.CssClass:
                controlFindExpression = by.Value.GenerateClassContainingExpression();
                break;

            case SearchType.XPath:
                controlFindExpression = by.Value.GenerateXpathExpression();
                break;

            case SearchType.CssSelector:
                controlFindExpression = by.Value.GenerateClassContainingExpression();
                break;

            case SearchType.Name:
                controlFindExpression = by.Value.GenerateNameContainingExpression();
                break;

            case SearchType.ValueEndingWith:
                controlFindExpression = by.Value.GenerateValueEndingWithExpression();
                break;

            case SearchType.LinkTextContaining:
                controlFindExpression = by.Value.GenerateLinkHrefContainingExpression();
                break;

            case SearchType.LinkText:
                controlFindExpression = by.Value.GenerateLinkHrefExpression();
                break;

            case SearchType.CssClassContaining:
                controlFindExpression = by.Value.GenerateClassContainingExpression();
                break;

            case SearchType.InnerTextContains:
                controlFindExpression = by.Value.GenerateInnerTextContainingExpression();
                break;

            case SearchType.NameEndingWith:
                controlFindExpression = by.Value.GenerateNameEndingWithExpression();
                break;

            default:
                throw new Exception("The specified locator type was not find.");
            }

            return(controlFindExpression);
        }
 public IEnumerable <TElement> FindAll <TElement>(Core.By by) where TElement : class, IElement
 {
     return(ElementFinderService.FindAll <TElement>(WebElement, by));
 }
 public bool IsElementPresent(Core.By by)
 {
     return(ElementFinderService.IsElementPresent(WebElement, by));
 }
예제 #14
0
 public bool IsElementPresent(Core.By by)
 {
     return(this.elementFinderService.IsElementPresent(this.webElement, by));
 }
예제 #15
0
 public TElement Find <TElement>(Core.By by) where TElement : class, Core.Controls.IElement
 {
     return(this.elementFinderService.Find <TElement>(this.webElement, by));
 }
예제 #16
0
        public bool IsElementPresent(ISearchContext searchContext, Core.By by)
        {
            var element = Find <Element>(searchContext, by);

            return(element.IsVisible);
        }
예제 #17
0
        public IEnumerable <TElement> FindAll <TElement>(ISearchContext searchContext, Core.By by)
            where TElement : class, Core.Controls.IElement
        {
            var elements         = searchContext.FindElements(by.ToSeleniumBy());
            var resolvedElements = new List <TElement>();

            foreach (var currentElement in elements)
            {
                var result = ResolveElement <TElement>(searchContext, currentElement);
                resolvedElements.Add(result);
            }

            return(resolvedElements);
        }
예제 #18
0
 public bool IsElementPresent(Core.By by)
 {
     return(this.elementFinderService.IsElementPresent(
                this.currentActiveBrowser.Find,
                by));
 }
예제 #19
0
 public bool IsElementPresent(Core.By by)
 {
     return(this.elementFinderService.IsElementPresent(
                this.htmlControl.Find,
                by));
 }
예제 #20
0
        public IEnumerable <TElement> FindAll <TElement>(IDriver driver, Find findContext, Core.By by)
            where TElement : class, Core.Controls.IElement
        {
            List <TElement> resolvedElements           = new List <TElement>();
            string          testingFrameworkExpression = by.ToTestingFrameworkExpression();

            this.WaitForExists(driver, testingFrameworkExpression);
            var elements = findContext.AllByExpression(testingFrameworkExpression);

            foreach (var currentElement in elements)
            {
                TElement result = this.ResolveElement <TElement>(driver, currentElement);
                resolvedElements.Add(result);
            }

            return(resolvedElements);
        }