Class AbstractLocatorHandler<T>

java.lang.Object
io.fluentlenium.core.proxy.AbstractLocatorHandler<T>
Type Parameters:
T - type of underlying element or component
All Implemented Interfaces:
LocatorHandler<T>, LocatorStatusHandler
Direct Known Subclasses:
AbstractLocatorAndInvocationHandler

public abstract class AbstractLocatorHandler<T> extends Object implements LocatorHandler<T>
Abstract proxy handler supporting lazy loading and hooks on WebElement.

Contains the locator handling related logic.

  • Field Details

    • locator

      protected final org.openqa.selenium.support.pagefactory.ElementLocator locator
    • hookChainBuilder

      protected HookChainBuilder hookChainBuilder
    • hookDefinitions

      protected List<HookDefinition<?>> hookDefinitions
    • hooks

      protected List<FluentHook> hooks
    • proxy

      protected T proxy
    • result

      protected T result
  • Constructor Details

    • AbstractLocatorHandler

      public AbstractLocatorHandler (org.openqa.selenium.support.pagefactory.ElementLocator locator)
      Creates a new locator handler.
      Parameters:
      locator - selenium element locator
  • Method Details

    • addListener

      public boolean addListener (ProxyElementListener listener)
      Description copied from interface: LocatorHandler
      Add a listener for this locator handler.
      Specified by:
      addListener in interface LocatorHandler<T>
      Parameters:
      listener - listener to add, which will be notified when result is searched and found
      Returns:
      true if the listener was added, false otherwise
    • removeListener

      public boolean removeListener (ProxyElementListener listener)
      Description copied from interface: LocatorHandler
      Removes a proxy element listener.
      Specified by:
      removeListener in interface LocatorHandler<T>
      Parameters:
      listener - listener to remove
      Returns:
      true if the listener was removed, false otherwise
    • getLocatorResult

      public T getLocatorResult()
      Get the actual result of the locator, if result is not defined and not stale.

      It also raise events.

      Specified by:
      getLocatorResult in interface LocatorHandler<T>
      Returns:
      result of the locator
    • setHooks

      public void setHooks (HookChainBuilder hookChainBuilder, List<HookDefinition<?>> hookDefinitions)
      Description copied from interface: LocatorHandler
      Apply this hook list.
      Specified by:
      setHooks in interface LocatorHandler<T>
      Parameters:
      hookChainBuilder - hook chain builder
      hookDefinitions - hook definitions
    • getLocator

      public org.openqa.selenium.support.pagefactory.ElementLocator getLocator()
      Description copied from interface: LocatorHandler
      Retrieve the element locator used by this proxy, without any hook applied.
      Specified by:
      getLocator in interface LocatorHandler<T>
      Returns:
      element locator
    • getHookLocator

      public org.openqa.selenium.support.pagefactory.ElementLocator getHookLocator()
      Description copied from interface: LocatorHandler
      Retrieve the element locator used by this proxy, with hooks applied.
      Specified by:
      getHookLocator in interface LocatorHandler<T>
      Returns:
      element locator wrapped with hooks
    • loaded

      public boolean loaded()
      Description copied from interface: LocatorStatusHandler
      Check if this handler has loaded it's result.
      Specified by:
      loaded in interface LocatorStatusHandler
      Returns:
      true if the result is loaded, false otherwise
    • present

      public boolean present()
      Description copied from interface: LocatorStatusHandler
      Check if the result is present.
      Specified by:
      present in interface LocatorStatusHandler
      Returns:
      true if result is present, false otherwise
    • reset

      public void reset()
      Description copied from interface: LocatorStatusHandler
      Reset the loaded data.
      Specified by:
      reset in interface LocatorStatusHandler
    • setProxy

      public void setProxy (T proxy)
      Set the proxy using this handler.
      Parameters:
      proxy - proxy using this handler
    • fireProxyElementSearch

      protected void fireProxyElementSearch()
      Fire proxy element search event.
    • fireProxyElementFound

      protected void fireProxyElementFound (T result)
      Fire proxy element found event.
      Parameters:
      result - found element
    • getLocatorResultImpl

      public abstract T getLocatorResultImpl()
      Get the actual result of the locator.
      Returns:
      result of the locator
    • resultToList

      protected abstract List<org.openqa.selenium.WebElement> resultToList (T result)
      Convert result to a list of selenium element.
      Parameters:
      result - found result
      Returns:
      list of selenium element
    • isStale

      protected abstract boolean isStale()
      Get the stale status of the element.
      Returns:
      true if element is stale, false otherwise
    • getElement

      protected abstract org.openqa.selenium.WebElement getElement()
      Get the underlying element.
      Returns:
      underlying element
    • getLazyToString

      protected String getLazyToString()
      Get string representation of not already found element.
      Returns:
      string representation of not already found element
    • proxyToString

      public String proxyToString (String elementToString)
      Get string representation of the proxy
      Parameters:
      elementToString - string representation of the underlying element
      Returns:
      string representation of the proxy