Skip to content

Commit

Permalink
Use FluentControl instead of WebDriver as constructor parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
Toilal committed Sep 1, 2016
1 parent 41fa017 commit 27ec18c
Show file tree
Hide file tree
Showing 38 changed files with 247 additions and 132 deletions.
Expand Up @@ -72,7 +72,7 @@ public class FluentDriver implements FluentDriverControl {


public FluentDriver(WebDriver driver, ConfigurationProperties configuration) { public FluentDriver(WebDriver driver, ConfigurationProperties configuration) {
this.configuration = configuration; this.configuration = configuration;
this.componentsManager = new ComponentsManager(driver); this.componentsManager = new ComponentsManager(this);


initFluent(driver); initFluent(driver);
configureDriver(); configureDriver();
Expand Down Expand Up @@ -115,10 +115,10 @@ private void configureDriver() {


protected FluentDriver initFluent(WebDriver driver) { protected FluentDriver initFluent(WebDriver driver) {
this.driver = driver; this.driver = driver;
this.hookChainBuilder = new DefaultHookChainBuilder(this.driver, this.componentsManager.getInstantiator()); this.hookChainBuilder = new DefaultHookChainBuilder(this, this.componentsManager.getInstantiator());
this.search = new Search(driver, componentsManager, hookChainBuilder); this.search = new Search(driver, componentsManager, hookChainBuilder);
if (driver instanceof EventFiringWebDriver) { if (driver instanceof EventFiringWebDriver) {
this.events = new EventsRegistry((EventFiringWebDriver) driver); this.events = new EventsRegistry(this);
this.eventsComponentsAnnotations = new AnnotationsComponentListener(componentsManager); this.eventsComponentsAnnotations = new AnnotationsComponentListener(componentsManager);
this.events.register(this.eventsComponentsAnnotations); this.events.register(this.eventsComponentsAnnotations);
} }
Expand Down
@@ -1,6 +1,7 @@
package org.fluentlenium.core.components; package org.fluentlenium.core.components;


import com.sun.jna.WeakIdentityHashMap; import com.sun.jna.WeakIdentityHashMap;
import org.fluentlenium.core.FluentControl;
import org.fluentlenium.core.proxy.ProxyElementListener; import org.fluentlenium.core.proxy.ProxyElementListener;
import org.fluentlenium.core.proxy.LocatorProxies; import org.fluentlenium.core.proxy.LocatorProxies;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
Expand All @@ -23,19 +24,19 @@
*/ */
public class ComponentsManager implements ComponentInstantiator, ComponentAccessor, ProxyElementListener { public class ComponentsManager implements ComponentInstantiator, ComponentAccessor, ProxyElementListener {


private final WebDriver driver; private final FluentControl fluentControl;
private final ComponentInstantiator instantiator; private final ComponentInstantiator instantiator;


//TODO: IdentityHashMap or WeakIdentityHashMap ? //TODO: IdentityHashMap or WeakIdentityHashMap ?
private Map<WebElement, Object> components = new WeakIdentityHashMap(); private Map<WebElement, Object> components = new WeakIdentityHashMap();


public ComponentsManager(WebDriver driver) { public ComponentsManager(FluentControl fluentControl) {
this.driver = driver; this.fluentControl = fluentControl;
this.instantiator = new DefaultComponentInstantiator(this.driver, this); this.instantiator = new DefaultComponentInstantiator(this.fluentControl, this);
} }


public ComponentsManager(WebDriver driver, ComponentInstantiator instantiator) { public ComponentsManager(FluentControl fluentControl, ComponentInstantiator instantiator) {
this.driver = driver; this.fluentControl = fluentControl;
this.instantiator = instantiator; this.instantiator = instantiator;
} }


Expand Down
@@ -1,30 +1,31 @@
package org.fluentlenium.core.components; package org.fluentlenium.core.components;


import org.fluentlenium.core.FluentControl;
import org.fluentlenium.utils.ReflectionUtils; import org.fluentlenium.utils.ReflectionUtils;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;


public class DefaultComponentInstantiator implements ComponentInstantiator { public class DefaultComponentInstantiator implements ComponentInstantiator {
private final WebDriver driver; private final FluentControl fluentControl;
private final ComponentInstantiator instantiator; private final ComponentInstantiator instantiator;


public DefaultComponentInstantiator(WebDriver driver) { public DefaultComponentInstantiator(FluentControl fluentControl) {
this.driver = driver; this.fluentControl = fluentControl;
this.instantiator = this; this.instantiator = this;
} }


public DefaultComponentInstantiator(WebDriver driver, ComponentInstantiator instantiator) { public DefaultComponentInstantiator(FluentControl fluentControl, ComponentInstantiator instantiator) {
this.driver = driver; this.fluentControl = fluentControl;
this.instantiator = instantiator; this.instantiator = instantiator;
} }




@Override @Override
public boolean isComponentClass(Class<?> componentClass) { public boolean isComponentClass(Class<?> componentClass) {
try { try {
ReflectionUtils.getConstructorOptional(1, componentClass, WebElement.class, WebDriver.class, ComponentInstantiator.class); ReflectionUtils.getConstructorOptional(1, componentClass, WebElement.class, FluentControl.class, ComponentInstantiator.class);
return true; return true;
} catch (NoSuchMethodException e) { } catch (NoSuchMethodException e) {
return false; return false;
Expand All @@ -34,7 +35,7 @@ public boolean isComponentClass(Class<?> componentClass) {
@Override @Override
public <T> T newComponent(Class<T> componentClass, WebElement element) { public <T> T newComponent(Class<T> componentClass, WebElement element) {
try { try {
return ReflectionUtils.newInstanceOptionalArgs(1, componentClass, element, driver, instantiator); return ReflectionUtils.newInstanceOptionalArgs(1, componentClass, element, fluentControl, instantiator);
} catch (NoSuchMethodException e) { } catch (NoSuchMethodException e) {
throw new ComponentException(componentClass.getName() + " is not a valid component class.", e); throw new ComponentException(componentClass.getName() + " is not a valid component class.", e);
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
Expand Down
@@ -1,5 +1,6 @@
package org.fluentlenium.core.domain; package org.fluentlenium.core.domain;


import org.fluentlenium.core.FluentControl;
import org.fluentlenium.core.action.Fill; import org.fluentlenium.core.action.Fill;
import org.fluentlenium.core.action.FillSelect; import org.fluentlenium.core.action.FillSelect;
import org.fluentlenium.core.action.FluentActions; import org.fluentlenium.core.action.FluentActions;
Expand Down Expand Up @@ -34,7 +35,7 @@
*/ */
public class FluentWebElement implements WrapsElement, FluentActions<FluentWebElement, FluentWebElement>, FluentProxyState<FluentWebElement>, SearchControl<FluentWebElement>, HookControl<FluentWebElement> { public class FluentWebElement implements WrapsElement, FluentActions<FluentWebElement, FluentWebElement>, FluentProxyState<FluentWebElement>, SearchControl<FluentWebElement>, HookControl<FluentWebElement> {
private WebElement webElement; private WebElement webElement;
private final WebDriver driver; private final FluentControl fluentControl;
private final ComponentInstantiator instantiator; private final ComponentInstantiator instantiator;


private final Search search; private final Search search;
Expand All @@ -46,17 +47,17 @@ public class FluentWebElement implements WrapsElement, FluentActions<FluentWebEl
private final List<HookDefinition<?>> hookDefinitions = new ArrayList<>(); private final List<HookDefinition<?>> hookDefinitions = new ArrayList<>();
private final HookChainBuilder hookChainBuilder; private final HookChainBuilder hookChainBuilder;


public FluentWebElement(WebElement webElement, WebDriver driver, ComponentInstantiator instantiator) { public FluentWebElement(WebElement webElement, FluentControl fluentControl, ComponentInstantiator instantiator) {
this.webElement = webElement; this.webElement = webElement;
this.driver = driver; this.fluentControl = fluentControl;
this.instantiator = instantiator; this.instantiator = instantiator;


this.hookChainBuilder = new DefaultHookChainBuilder(this.driver, this.instantiator); this.hookChainBuilder = new DefaultHookChainBuilder(this.fluentControl, this.instantiator);


this.search = new Search(webElement, this.instantiator, this.hookChainBuilder); this.search = new Search(webElement, this.instantiator, this.hookChainBuilder);
this.axes = new Axes(webElement, this.instantiator, this.hookChainBuilder); this.axes = new Axes(webElement, this.instantiator, this.hookChainBuilder);
this.mouseActions = new MouseElementActions(this.driver, webElement); this.mouseActions = new MouseElementActions(this.fluentControl.getDriver(), webElement);
this.keyboardActions = new KeyboardElementActions(this.driver, webElement); this.keyboardActions = new KeyboardElementActions(this.fluentControl.getDriver(), webElement);
this.conditions = new WebElementConditions(this); this.conditions = new WebElementConditions(this);




Expand Down Expand Up @@ -263,7 +264,7 @@ public boolean isSelected() {
*/ */


public boolean isClickable() { public boolean isClickable() {
return ExpectedConditions.elementToBeClickable(getElement()).apply(driver) != null; return ExpectedConditions.elementToBeClickable(getElement()).apply(fluentControl.getDriver()) != null;
} }


/** /**
Expand All @@ -272,7 +273,7 @@ public boolean isClickable() {
* @return false is the element is still attached to the DOM, true otherwise. * @return false is the element is still attached to the DOM, true otherwise.
*/ */
public boolean isStale() { public boolean isStale() {
return ExpectedConditions.stalenessOf(getElement()).apply(driver); return ExpectedConditions.stalenessOf(getElement()).apply(fluentControl.getDriver());
} }


/** /**
Expand Down
@@ -1,5 +1,6 @@
package org.fluentlenium.core.events; package org.fluentlenium.core.events;


import org.fluentlenium.core.FluentControl;
import org.fluentlenium.core.events.annotations.AfterChangeValueOf; import org.fluentlenium.core.events.annotations.AfterChangeValueOf;
import org.fluentlenium.core.events.annotations.AfterClickOn; import org.fluentlenium.core.events.annotations.AfterClickOn;
import org.fluentlenium.core.events.annotations.AfterFindBy; import org.fluentlenium.core.events.annotations.AfterFindBy;
Expand All @@ -25,8 +26,8 @@
public class ContainerAnnotationsEventsRegistry extends EventsRegistry { public class ContainerAnnotationsEventsRegistry extends EventsRegistry {
private final Object container; private final Object container;


public ContainerAnnotationsEventsRegistry(EventFiringWebDriver webDriver, Object container) { public ContainerAnnotationsEventsRegistry(FluentControl fluentControl, Object container) {
super(webDriver); super(fluentControl);
this.container = container; this.container = container;


//TODO: Ordre non determiné. //TODO: Ordre non determiné.
Expand Down
@@ -1,5 +1,6 @@
package org.fluentlenium.core.events; package org.fluentlenium.core.events;


import org.fluentlenium.core.FluentControl;
import org.fluentlenium.core.components.DefaultComponentInstantiator; import org.fluentlenium.core.components.DefaultComponentInstantiator;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.events.EventFiringWebDriver; import org.openqa.selenium.support.events.EventFiringWebDriver;
Expand Down Expand Up @@ -57,10 +58,10 @@ public class EventsRegistry {


List<ExceptionListener> onException = new ArrayList<ExceptionListener>(); List<ExceptionListener> onException = new ArrayList<ExceptionListener>();


public EventsRegistry(final EventFiringWebDriver driver) { public EventsRegistry(final FluentControl fluentControl) {
this.eventDriver = driver; this.eventDriver = (EventFiringWebDriver) fluentControl.getDriver();
this.support = new EventsSupport(this); this.support = new EventsSupport(this);
this.instantiator = new DefaultComponentInstantiator(driver); this.instantiator = new DefaultComponentInstantiator(fluentControl);
this.register(this.support); this.register(this.support);
} }


Expand Down
@@ -1,6 +1,7 @@
package org.fluentlenium.core.hook; package org.fluentlenium.core.hook;


import com.google.common.base.Supplier; import com.google.common.base.Supplier;
import org.fluentlenium.core.FluentControl;
import org.fluentlenium.core.components.ComponentInstantiator; import org.fluentlenium.core.components.ComponentInstantiator;
import org.fluentlenium.core.domain.FluentWebElement; import org.fluentlenium.core.domain.FluentWebElement;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
Expand All @@ -10,8 +11,8 @@
public class BaseFluentHook<T> extends BaseHook<T> { public class BaseFluentHook<T> extends BaseHook<T> {
private FluentWebElement fluentWebElement; private FluentWebElement fluentWebElement;


public BaseFluentHook(WebDriver webDriver, ComponentInstantiator instantiator, Supplier<WebElement> elementSupplier, Supplier<ElementLocator> locatorSupplier, T options) { public BaseFluentHook(FluentControl fluentControl, ComponentInstantiator instantiator, Supplier<WebElement> elementSupplier, Supplier<ElementLocator> locatorSupplier, T options) {
super(webDriver, instantiator, elementSupplier, locatorSupplier, options); super(fluentControl, instantiator, elementSupplier, locatorSupplier, options);
} }


public FluentWebElement getFluentWebElement() { public FluentWebElement getFluentWebElement() {
Expand Down
Expand Up @@ -3,6 +3,7 @@
import com.google.common.base.Supplier; import com.google.common.base.Supplier;
import lombok.experimental.Delegate; import lombok.experimental.Delegate;
import org.fluentlenium.core.DefaultFluentContainer; import org.fluentlenium.core.DefaultFluentContainer;
import org.fluentlenium.core.FluentControl;
import org.fluentlenium.core.components.ComponentInstantiator; import org.fluentlenium.core.components.ComponentInstantiator;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
Expand All @@ -11,8 +12,6 @@
public class BaseHook<T> extends DefaultFluentContainer implements FluentHook<T> { public class BaseHook<T> extends DefaultFluentContainer implements FluentHook<T> {
private final ComponentInstantiator instantiator; private final ComponentInstantiator instantiator;


private final WebDriver webDriver;

private final Supplier<ElementLocator> locatorSupplier; private final Supplier<ElementLocator> locatorSupplier;


private T options; private T options;
Expand All @@ -29,8 +28,8 @@ public final ElementLocator getElementLocator() {
return locatorSupplier.get(); return locatorSupplier.get();
} }


public BaseHook(WebDriver webDriver, ComponentInstantiator instantiator, Supplier<WebElement> elementSupplier, Supplier<ElementLocator> locatorSupplier, T options) { public BaseHook(FluentControl fluentControl, ComponentInstantiator instantiator, Supplier<WebElement> elementSupplier, Supplier<ElementLocator> locatorSupplier, T options) {
this.webDriver = webDriver; super(fluentControl);
this.instantiator = instantiator; this.instantiator = instantiator;
this.elementSupplier = elementSupplier; this.elementSupplier = elementSupplier;
this.locatorSupplier = locatorSupplier; this.locatorSupplier = locatorSupplier;
Expand All @@ -45,10 +44,6 @@ protected T newOptions() {
return null; return null;
} }


public WebDriver getWebDriver() {
return webDriver;
}

public ComponentInstantiator getInstantiator() { public ComponentInstantiator getInstantiator() {
return instantiator; return instantiator;
} }
Expand Down
@@ -1,6 +1,7 @@
package org.fluentlenium.core.hook; package org.fluentlenium.core.hook;


import com.google.common.base.Supplier; import com.google.common.base.Supplier;
import org.fluentlenium.core.FluentControl;
import org.fluentlenium.core.components.ComponentInstantiator; import org.fluentlenium.core.components.ComponentInstantiator;
import org.fluentlenium.utils.ReflectionUtils; import org.fluentlenium.utils.ReflectionUtils;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
Expand All @@ -12,11 +13,11 @@
import java.util.List; import java.util.List;


public class DefaultHookChainBuilder implements HookChainBuilder { public class DefaultHookChainBuilder implements HookChainBuilder {
private final WebDriver webDriver; private final FluentControl fluentControl;
private final ComponentInstantiator instantiator; private final ComponentInstantiator instantiator;


public DefaultHookChainBuilder(WebDriver webDriver, ComponentInstantiator instantiator) { public DefaultHookChainBuilder(FluentControl fluentControl, ComponentInstantiator instantiator) {
this.webDriver = webDriver; this.fluentControl = fluentControl;
this.instantiator = instantiator; this.instantiator = instantiator;
} }


Expand All @@ -29,7 +30,7 @@ public List<FluentHook> build(Supplier<WebElement> elementSupplier, Supplier<Ele
for (HookDefinition<?> hook : hooks) { for (HookDefinition<?> hook : hooks) {
FluentHook<?> newObject; FluentHook<?> newObject;
try { try {
newObject = newInstance(hook.getHookClass(), webDriver, instantiator, currentSupplier, locator, hook.getOptions()); newObject = newInstance(hook.getHookClass(), fluentControl, instantiator, currentSupplier, locator, hook.getOptions());
} catch (NoSuchMethodException e) { } catch (NoSuchMethodException e) {
throw new HookException(e); throw new HookException(e);
} catch (IllegalAccessException | InvocationTargetException | InstantiationException e) { } catch (IllegalAccessException | InvocationTargetException | InstantiationException e) {
Expand All @@ -50,7 +51,7 @@ public WebElement get() {
return chain; return chain;
} }


protected FluentHook<?> newInstance(Class<? extends FluentHook<?>> hookClass, WebDriver webDriver, ComponentInstantiator instantiator, Supplier<WebElement> currentSupplier, Supplier<ElementLocator> locator, Object options) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { protected FluentHook<?> newInstance(Class<? extends FluentHook<?>> hookClass, FluentControl fluentControl, ComponentInstantiator instantiator, Supplier<WebElement> currentSupplier, Supplier<ElementLocator> locator, Object options) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
return ReflectionUtils.newInstance(hookClass, webDriver, instantiator, currentSupplier, locator, options); return ReflectionUtils.newInstance(hookClass, fluentControl, instantiator, currentSupplier, locator, options);
} }
} }
Expand Up @@ -19,6 +19,6 @@
TimeUnit timeUnit() default TimeUnit.MILLISECONDS; TimeUnit timeUnit() default TimeUnit.MILLISECONDS;
long atMost() default -1L; long atMost() default -1L;
long pollingEvery() default -1L; long pollingEvery() default -1L;
boolean withNoDefaultsException(); boolean withNoDefaultsException() default false;
java.lang.Class<? extends Throwable>[] ignoreAll(); java.lang.Class<? extends Throwable>[] ignoreAll() default {};
} }
Expand Up @@ -2,6 +2,7 @@


import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Supplier; import com.google.common.base.Supplier;
import org.fluentlenium.core.FluentControl;
import org.fluentlenium.core.FluentDriver; import org.fluentlenium.core.FluentDriver;
import org.fluentlenium.core.components.ComponentInstantiator; import org.fluentlenium.core.components.ComponentInstantiator;
import org.fluentlenium.core.components.ComponentsManager; import org.fluentlenium.core.components.ComponentsManager;
Expand All @@ -17,8 +18,8 @@
import java.util.List; import java.util.List;


public class WaitHook extends BaseFluentHook<WaitHookOptions> { public class WaitHook extends BaseFluentHook<WaitHookOptions> {
public WaitHook(WebDriver webDriver, ComponentInstantiator instantiator, Supplier<WebElement> elementSupplier, Supplier<ElementLocator> locatorSupplier, WaitHookOptions options) { public WaitHook(FluentControl fluentControl, ComponentInstantiator instantiator, Supplier<WebElement> elementSupplier, Supplier<ElementLocator> locatorSupplier, WaitHookOptions options) {
super(webDriver, instantiator, elementSupplier, locatorSupplier, options); super(fluentControl, instantiator, elementSupplier, locatorSupplier, options);
} }


@Override @Override
Expand Down
Expand Up @@ -52,7 +52,7 @@ public FluentInjector(FluentControl fluentControl, ComponentsManager componentsM
this.fluentControl = fluentControl; this.fluentControl = fluentControl;
this.componentsManager = componentsManager; this.componentsManager = componentsManager;
this.containerInstanciator = instanciator; this.containerInstanciator = instanciator;
this.hookChainBuilder = new DefaultHookChainBuilder(fluentControl.getDriver(), componentsManager.getInstantiator()); this.hookChainBuilder = new DefaultHookChainBuilder(fluentControl, componentsManager.getInstantiator());
} }


/** /**
Expand Down Expand Up @@ -121,7 +121,7 @@ private void initContainerContext(Object container, Object parentContainer) {


private void initEventAnnotations(final Object container) { private void initEventAnnotations(final Object container) {
if (fluentControl.getDriver() instanceof EventFiringWebDriver) { if (fluentControl.getDriver() instanceof EventFiringWebDriver) {
eventsContainerSupport.put(container, new ContainerAnnotationsEventsRegistry((EventFiringWebDriver) fluentControl.getDriver(), container)); eventsContainerSupport.put(container, new ContainerAnnotationsEventsRegistry(fluentControl, container));
} }
} }


Expand Down Expand Up @@ -347,7 +347,6 @@ private List<?> initFieldAsList(ElementLocator locator, Object container, Field
private FluentList<? extends FluentWebElement> initFieldAsListOfFluentWebElement(ElementLocator locator, Object container, Field field, List<HookDefinition<?>> hookDefinitions) throws IllegalAccessException { private FluentList<? extends FluentWebElement> initFieldAsListOfFluentWebElement(ElementLocator locator, Object container, Field field, List<HookDefinition<?>> hookDefinitions) throws IllegalAccessException {
FluentList<? extends FluentWebElement> proxy = LocatorProxies.createFluentList(locator, (Class<? extends FluentWebElement>) getFirstGenericType(field), componentsManager, hookChainBuilder); FluentList<? extends FluentWebElement> proxy = LocatorProxies.createFluentList(locator, (Class<? extends FluentWebElement>) getFirstGenericType(field), componentsManager, hookChainBuilder);
if (hookDefinitions.size() > 0) { if (hookDefinitions.size() > 0) {
HookChainBuilder hookChainBuilder = new DefaultHookChainBuilder(fluentControl.getDriver(), componentsManager.getInstantiator());
LocatorProxies.setHooks(hookChainBuilder, proxy, hookDefinitions); LocatorProxies.setHooks(hookChainBuilder, proxy, hookDefinitions);
} }
ReflectionUtils.set(field, container, proxy); ReflectionUtils.set(field, container, proxy);
Expand Down
Expand Up @@ -4,6 +4,7 @@
import org.assertj.core.api.ThrowableAssert; import org.assertj.core.api.ThrowableAssert;
import org.fluentlenium.adapter.FluentAdapter; import org.fluentlenium.adapter.FluentAdapter;
import org.fluentlenium.core.FluentDriver; import org.fluentlenium.core.FluentDriver;
import org.fluentlenium.core.components.DefaultComponentInstantiator;
import org.fluentlenium.core.domain.FluentListImpl; import org.fluentlenium.core.domain.FluentListImpl;
import org.fluentlenium.core.domain.FluentWebElement; import org.fluentlenium.core.domain.FluentWebElement;
import org.fluentlenium.core.search.SearchControl; import org.fluentlenium.core.search.SearchControl;
Expand Down Expand Up @@ -46,10 +47,14 @@ public class FillSelectTest {
@Mock @Mock
private WebElement element4; private WebElement element4;


private FluentAdapter fluentAdapter;

@Before @Before
public void before() { public void before() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);


fluentAdapter = new FluentAdapter(driver);

when(element1.getTagName()).thenReturn("select"); when(element1.getTagName()).thenReturn("select");
when(element2.getTagName()).thenReturn("span"); when(element2.getTagName()).thenReturn("span");
when(element3.getTagName()).thenReturn("select"); when(element3.getTagName()).thenReturn("select");
Expand All @@ -63,7 +68,7 @@ public void after() {
} }


public FluentWebElement el(WebElement element) { public FluentWebElement el(WebElement element) {
return new FluentWebElement(element, null, null); return new FluentWebElement(element, fluentAdapter, new DefaultComponentInstantiator(fluentAdapter));
} }


@Test @Test
Expand Down

0 comments on commit 27ec18c

Please sign in to comment.