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;
            }));
        }
Пример #2
0
 public new TaskAwaiter <IReadOnlyList <IDomElement> > GetAwaiter()
 {
     return(MethodChainContext
            .RunAllAsync()
            .ContinueWith(
                GetAwaiterContinueWith,
                TaskUtilities.ContinuationOptions)
            .GetAwaiter());
 }