Example #1
0
        protected override async Task OnExecuteAsync(IWebAutomationFrameworkInstance framework)
        {
            IReadOnlyList <IDomElement> elements = null;

            if (_selector != null)
            {
                elements = await framework.FindDomElementsBySelectorAsync(
                    MethodChainOffset,
                    _selector);
            }

            if (_domElements != null)
            {
                elements = await framework
                           .FindDomElementsByCssSelectorsAsync(
                    MethodChainOffset,
                    _domElements
                    .Select(x => x.CssSelector)
                    .ToArray());
            }

            if (elements == null || elements.Count == 0)
            {
                throw ExpectationNotMetException.FromMethodChainNode(this, framework.UserAgentName, "No matching elements were found.");
            }
        }
        protected override async Task OnExecuteAsync(IWebAutomationFrameworkInstance framework)
        {
            Elements = await framework.FindDomElementsBySelectorAsync(
                MethodChainOffset,
                _selector);

            if (DelegatedFrom != null)
            {
                DelegatedFrom.Elements = Elements;
            }
        }
        protected override async Task OnExecuteAsync(IWebAutomationFrameworkInstance framework)
        {
            if (_delegatedFrom != null)
            {
                if (_selector == null)
                {
                    _selector = _delegatedFrom._selector;
                }

                if (Elements == null && _delegatedFrom.Elements != null && _delegatedFrom.Elements.Count > 0)
                {
                    Elements = _delegatedFrom.Elements;
                }
            }

            var hasNoElements = Elements == null;

            if (hasNoElements && _selector == null)
            {
                throw new InvalidOperationException("Elements to target must be found either via a selector or a list of elements.");
            }

            if (hasNoElements)
            {
                Elements = await framework.FindDomElementsBySelectorAsync(
                    MethodChainOffset,
                    _selector);
            }

            if (_delegatedFrom != null)
            {
                _delegatedFrom.Elements = Elements;
            }

            await base.OnExecuteAsync(framework);

            if (_delegatedFrom != null)
            {
                _delegatedFrom.Elements = Elements;
            }
        }