public static void WaitUntil <T>(this T element, Predicate <T> predicate, TimeSpan timeOut = default(TimeSpan), Type[] ignoredExceptionTypes = null)
        {
            if (timeOut == default(TimeSpan))
            {
                timeOut = GlobalConfiguration.Configuration.WaitTimeout;
            }

            TimeoutManager.Execute(timeOut, predicate, element, ignoredExceptionTypes);
        }
 public override IWebElement FindElement(By @by)
 {
     if (!Settings.AlwaysWaitForElement)
     {
         return(_driver.FindElement(@by));
     }
     else
     {
         return(TimeoutManager.Execute(Settings.WaitTimeout, () => _driver.FindElement(@by)));
     }
 }