Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Bellatrix.Web/components/core/Component.cs
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ public ComponentsList<TComponent> CreateAll<TComponent, TBy>(TBy by)
}
else
{
elementsCollection = new ComponentsList<TComponent>(by, WrappedElement, ShouldCacheElement);
elementsCollection = new ComponentsList<TComponent>(by, this, ShouldCacheElement);
}

CreatedComponents?.Invoke(this, new ComponentActionEventArgs(this));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ public class ComponentsList<TComponent> : IEnumerable<TComponent>
where TComponent : Component
{
private readonly FindStrategy _by;
private readonly IWebElement _parentElement;
private readonly Component _parentComponent;
private readonly List<TComponent> _foundElements;
private readonly bool _shouldCacheFoundElements;
private List<TComponent> _cachedElements;

public ComponentsList(
FindStrategy by,
IWebElement parenTComponent,
Component parenTComponent,
bool shouldCacheFoundElements)
: this(by, parenTComponent)
{
Expand All @@ -42,10 +42,10 @@ public ComponentsList(

public ComponentsList(
FindStrategy by,
IWebElement parenTComponent)
Component parenTComponent)
{
_by = by;
_parentElement = parenTComponent;
_parentComponent = parenTComponent;
_foundElements = new List<TComponent>();
WrappedDriver = ServicesCollection.Current.Resolve<IWebDriver>();
}
Expand Down Expand Up @@ -149,10 +149,10 @@ IEnumerable<TComponent> GetAndWaitNativeElements()
foreach (var nativeElement in nativeElements)
{
var elementRepository = new ComponentRepository();
if (_parentElement != null)
if (_parentComponent != null)
{
var element =
elementRepository.CreateComponentWithParent<TComponent>(_by, _parentElement, nativeElement, index++, _shouldCacheFoundElements);
elementRepository.CreateComponentWithParent<TComponent>(_by, _parentComponent, nativeElement, index++, _shouldCacheFoundElements);
yield return element;
}
else
Expand All @@ -168,11 +168,11 @@ IEnumerable<TComponent> GetAndWaitNativeElements()

private IEnumerable<IWebElement> WaitWebDriverElements()
{
var elementFinder = _parentElement == null
var elementFinder = _parentComponent == null
? new NativeElementFinderService(WrappedDriver)
: new NativeElementFinderService(_parentElement);
: new NativeElementFinderService(_parentComponent.WrappedElement);
var elementWaiter = new ComponentWaitService();
if (_parentElement == null)
if (_parentComponent == null)
{
return ConditionalWait(elementFinder);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ public static TComponent CreateByNgSelectedOption<TComponent>(this Component ele
where TComponent : Component => element.Create<TComponent, ByNgSelectedOption>(new ByNgSelectedOption(selectedOption));

public static ComponentsList<TComponent> CreateAllByNgBinding<TComponent>(this Component element, string binding)
where TComponent : Component => new ComponentsList<TComponent>(new ByNgBinding(binding), element.WrappedElement);
where TComponent : Component => new ComponentsList<TComponent>(new ByNgBinding(binding), element);

public static ComponentsList<TComponent> CreateAllByNgModel<TComponent>(this Component element, string model)
where TComponent : Component => new ComponentsList<TComponent>(new ByNgModel(model), element.WrappedElement);
where TComponent : Component => new ComponentsList<TComponent>(new ByNgModel(model), element);

public static ComponentsList<TComponent> CreateAllByNgRepeater<TComponent>(this Component element, string repeater)
where TComponent : Component => new ComponentsList<TComponent>(new ByNgRepeater(repeater), element.WrappedElement);
where TComponent : Component => new ComponentsList<TComponent>(new ByNgRepeater(repeater), element);

public static ComponentsList<TComponent> CreateAllByNgSelectedOption<TComponent>(this Component element, string selectedOption)
where TComponent : Component => new ComponentsList<TComponent>(new ByNgSelectedOption(selectedOption), element.WrappedElement);
where TComponent : Component => new ComponentsList<TComponent>(new ByNgSelectedOption(selectedOption), element);
}
28 changes: 14 additions & 14 deletions src/Bellatrix.Web/findstrategies/ComponentCreateExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,44 +60,44 @@ public static TComponent CreateByAttributesContaining<TComponent>(this Component
where TComponent : Component => element.Create<TComponent, FindAttributeContainingStrategy>(Find.By.AttributeContaining(attributeName, value), shouldCacheElement);

public static ComponentsList<TComponent> CreateAllByIdEndingWith<TComponent>(this Component element, string idEnding, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindIdEndingWithStrategy(idEnding), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindIdEndingWithStrategy(idEnding), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByTag<TComponent>(this Component element, string tag, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindTagStrategy(tag), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindTagStrategy(tag), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllById<TComponent>(this Component element, string id, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindIdStrategy(id), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindIdStrategy(id), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByIdContaining<TComponent>(this Component element, string idContaining, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindIdContainingStrategy(idContaining), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindIdContainingStrategy(idContaining), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByValueContaining<TComponent>(this Component element, string valueEnding, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindValueContainingStrategy(valueEnding), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindValueContainingStrategy(valueEnding), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByXpath<TComponent>(this Component element, string xpath, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindXpathStrategy(xpath), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindXpathStrategy(xpath), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByLinkText<TComponent>(this Component element, string linkText, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindLinkTextStrategy(linkText), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindLinkTextStrategy(linkText), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByLinkTextContaining<TComponent>(this Component element, string linkTextContaining, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindLinkTextContainsStrategy(linkTextContaining), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindLinkTextContainsStrategy(linkTextContaining), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByClass<TComponent>(this Component element, string cssClass, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindClassStrategy(cssClass), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindClassStrategy(cssClass), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByCss<TComponent>(this Component element, string cssClass, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindCssStrategy(cssClass), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindCssStrategy(cssClass), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByClassContaining<TComponent>(this Component element, string cssClassContaining, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindClassContainingStrategy(cssClassContaining), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindClassContainingStrategy(cssClassContaining), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByInnerTextContaining<TComponent>(this Component element, string innerText, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindInnerTextContainsStrategy(innerText), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindInnerTextContainsStrategy(innerText), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByNameEndingWith<TComponent>(this Component element, string name, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindNameEndingWithStrategy(name), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindNameEndingWithStrategy(name), element, shouldCacheFoundElements);

public static ComponentsList<TComponent> CreateAllByAttributesContaining<TComponent>(this Component element, string attributeName, string value, bool shouldCacheFoundElements = false)
where TComponent : Component => new ComponentsList<TComponent>(new FindAttributeContainingStrategy(attributeName, value), element.WrappedElement, shouldCacheFoundElements);
where TComponent : Component => new ComponentsList<TComponent>(new FindAttributeContainingStrategy(attributeName, value), element, shouldCacheFoundElements);
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ public static class ElementCreateExtensions
// public static TComponent CreateByIdStartingWith<TComponent>(this Element element, string idPrefix)
// where TComponent : Element => ComponentCreateService.Create<TComponent, FindIdStartingWithStrategy>(new FindIdStartingWithStrategy(idPrefix));
public static ComponentsList<TComponent> CreateAllByIdStartingWith<TComponent>(this Component element, string idEnding)
where TComponent : Component => new ComponentsList<TComponent>(new FindIdStartingWithStrategy(idEnding), element.WrappedElement);
where TComponent : Component => new ComponentsList<TComponent>(new FindIdStartingWithStrategy(idEnding), element);
}
Loading