/// <summary> /// Can be called to wait for IsLoaded to fire. /// </summary> /// <returns>TView</returns> public virtual TView WaitToLoad() { try { if (IsLoaded()) { return(this as TView); // Load, so just immediately return this } var doNothing = new LambdaBrowserAction(() => {}, _NONE); var predicate = new LambdaPredicateQuery(IsLoaded, _NONE); _browserScope.TryUntil(doNothing, predicate); } catch (Exception e) { throw new ZukiniAssertionException($"Expected '{typeof(TView)}' failed to load.\nReason: {e}"); } return(this as TView); }
public void WaitProcessing(DriverScope scope) { // Wait until progress bar disappears during timeout var timeout = TimeSpan.FromSeconds(double.Parse(ConfigurationManager.AppSettings["Timeout"])); try { if (scope is BrowserWindow) { scope.TryUntil(() => { Thread.Sleep(1000); }, () => (bool)((BrowserWindow)scope).ExecuteScript("if ($ === undefined) { return true } else { return $('body.cursorWait').length === 0 && $('#callbackFeedback.callbackFeedback').length === 0}"), timeout); } } catch (Exception exp) { Console.WriteLine(string.Format("JS processing is not finished for '{0}'.", timeout), exp); } // Wait 1 seconds to allow UI rendered }