public TElement Find <TElement>(ISearchContext searchContext, By by) where TElement : class, IElement { var element = searchContext.FindElement(by.ToSeleniumBy()); var result = ResolveElement <TElement>(searchContext, element); return(result); }
public void WaitForDisplayed(IWebDriver driver, By by, TimeSpan timeout) { var wait = new WebDriverWait(driver, timeout) { PollingInterval = TimeSpan.FromSeconds(1.0) }; wait.Until(x => { var executor = (IJavaScriptExecutor)x; var element = x.FindElement(by.ToSeleniumBy()); return((bool)executor.ExecuteScript( @"var rect = arguments[0].getBoundingClientRect(); return ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth) );", element)); }); }
public IEnumerable <TElement> FindAll <TElement>(ISearchContext searchContext, By by) where TElement : class, IElement { var elements = searchContext.FindElements(by.ToSeleniumBy()); return(elements.Select(currentElement => ResolveElement <TElement>(searchContext, currentElement))); }