private TNextMethodChainNode Delegate()
 {
     lock (MethodChainContext)
     {
         return(MethodChainContext.Enqueue(new TNextMethodChainNode()));
     }
 }
        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;
            }));
        }
示例#3
0
 public new TaskAwaiter <IReadOnlyList <IDomElement> > GetAwaiter()
 {
     return(MethodChainContext
            .RunAllAsync()
            .ContinueWith(
                GetAwaiterContinueWith,
                TaskUtilities.ContinuationOptions)
            .GetAwaiter());
 }
示例#4
0
 public IDomElementFromTargetsMethodChainNode <IBaseMethodChainNode, ISelectByFromTargetMethodChainNode> ByIndices(params int[] indices)
 {
     return(MethodChainContext.Enqueue(SelectByMethodChainNode.ByIndices(indices)));
 }
示例#5
0
 public IDomElementInTargetsMethodChainNode <IBaseMethodChainNode, IExpectValueOfTargetsMethodChainNode> Value(string value)
 {
     return(MethodChainContext.Enqueue(new ExpectValueMethodChainNode(value)));
 }
示例#6
0
 public IDomElementInTargetsMethodChainNode <IBaseMethodChainNode, IExpectTextInTargetsMethodChainNode> Text(string text)
 {
     return(MethodChainContext.Enqueue(new ExpectTextMethodChainNode(text)));
 }
示例#7
0
 public IExpectExistsMethodChainNode Exists(IReadOnlyList <IDomElement> elements)
 {
     return(MethodChainContext.Enqueue(new ExpectExistsMethodChainNode(elements)));
 }
示例#8
0
 public IExpectExistsMethodChainNode Exists(string selector)
 {
     return(MethodChainContext.Enqueue(new ExpectExistsMethodChainNode(selector)));
 }
 Task IAwaitable.AsTask()
 {
     return(MethodChainContext.AsTask());
 }
示例#10
0
 public IDomElementOfTargetsMethodChainNode <IBaseMethodChainNode, IExpectClassesOfTargetsMethodChainNode> Classes(params string[] classNames)
 {
     return(MethodChainContext.Enqueue(new ExpectClassesMethodChainNode(classNames)));
 }
 public IWaitMethodChainNode Wait(Func <Task <bool> > predicate) => MethodChainContext.Enqueue(new WaitMethodChainNode(predicate));
 public IOpenMethodChainNode Open(string uri) =>
 MethodChainContext.Enqueue(new OpenMethodChainNode(uri));
 public IFindMethodChainNode Find(string selector) =>
 MethodChainContext.Enqueue(new FindMethodChainNode(selector));
 public IDomElementInTargetsMethodChainNode <IBaseMethodChainNode, IEnterInTargetMethodChainNode> Enter(string text) =>
 MethodChainContext.Enqueue(new EnterMethodChainNode(text));
示例#15
0
 public IDomElementFromTargetsMethodChainNode <IBaseMethodChainNode, ISelectByFromTargetMethodChainNode> ByValues(params string[] values)
 {
     return(MethodChainContext.Enqueue(SelectByMethodChainNode.ByValues(values)));
 }
示例#16
0
        private IMethodChainContext CreateNewQueue()
        {
            var methodChainQueue = new MethodChainContext(_frameworks, this);

            return(methodChainQueue);
        }
示例#17
0
 public IDomElementOfTargetsMethodChainNode <IBaseMethodChainNode, IExpectCountOfTargetsMethodChainNode> Count(int count)
 {
     return(MethodChainContext.Enqueue(new ExpectCountMethodChainNode(count)));
 }