All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fluentlenium.core.hook.BaseFluentHook Maven / Gradle / Ivy

package org.fluentlenium.core.hook;

import org.fluentlenium.core.FluentControl;
import org.fluentlenium.core.components.ComponentInstantiator;
import org.fluentlenium.core.domain.FluentWebElement;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.pagefactory.ElementLocator;

import java.util.function.Supplier;

/**
 * Base hook supporting {@link FluentWebElement} API.
 * 

* You should extends this class to implements your own hook. * * @param object * @see #getFluentWebElement() */ public class BaseFluentHook extends BaseHook { private FluentWebElement fluentWebElement; /** * create a new base fluent hook. * * @param control control interface * @param instantiator component instantiator * @param elementSupplier element supplier * @param locatorSupplier element locator supplier * @param toStringSupplier element toString supplier * @param options hook options */ public BaseFluentHook(FluentControl control, ComponentInstantiator instantiator, Supplier elementSupplier, Supplier locatorSupplier, Supplier toStringSupplier, T options) { super(control, instantiator, elementSupplier, locatorSupplier, toStringSupplier, options); } /** * Get the underlying element as a FluentWebElement. * * @return underlying element as a FluentWebElement */ public FluentWebElement getFluentWebElement() { WebElement element = getElement(); if (fluentWebElement == null || element != fluentWebElement.getElement()) { fluentWebElement = getInstantiator().newComponent(FluentWebElement.class, element); } return fluentWebElement; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy