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; } }