public IWaitMethodChainNode Wait(Action <IExpectMethodChainRoot> predicate) { return(Wait(async() => { while (MethodChainContext.Frameworks.Any(x => x.IsNavigating)) { await Task.Delay(100); } var methodChainContext = new MethodChainContext(MethodChainContext.Frameworks, MethodChainContext.AutomationEngine); var expectNode = methodChainContext.Enqueue(new ExpectMethodChainEntryPoint()); predicate(expectNode); try { await methodChainContext.RunAllAsync(); return true; } catch (Exception ex) when(ex.InnerException is ExpectationNotMetException) { } catch (ExpectationNotMetException) { } return false; })); }
public new TaskAwaiter <IReadOnlyList <IDomElement> > GetAwaiter() { return(MethodChainContext .RunAllAsync() .ContinueWith( GetAwaiterContinueWith, TaskUtilities.ContinuationOptions) .GetAwaiter()); }