Class FluentPage
- All Implemented Interfaces:
Configuration,ConfigurationMutator,ConfigurationProperties,InputControl,AlertControl,CapabilitiesControl,ComponentInstantiator,CssControl,EventsControl,FluentContainer,FluentControl,FluentPageControl,FluentInjectControl,NavigationControl,PerformanceTimingControl,JavascriptControl,SearchControl<FluentWebElement>,SeleniumDriverControl,SnapshotControl,AwaitControl,ChromiumControl
Extend this class and use @PageUrl and @FindBy annotations to provide
injectable Page Objects to FluentLenium.
Your page object class has to extend this class only when you use the @PageUrl annotation as well.
A subclass of FluentPage may also be annotated with one of Selenium's @Find... annotation to give an
identifier for this page. See isAt() and isAtUsingSelector(By).
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.fluentlenium.configuration.ConfigurationProperties
ConfigurationProperties.DriverLifecycle, ConfigurationProperties.TriggerMode -
Field Summary
Fields inherited from class io.fluentlenium.core.DefaultFluentContainer
control -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new fluent page.FluentPage(FluentControl control) Creates a new fluent page, using given fluent control. -
Method Summary
Modifier and TypeMethodDescriptionParses the current URL and returns the parameter value for the argument parameter name.getUrl()Gets the URL of the page.URL of the page, after replacing parameters with given values.<P extends FluentPage>
Pgo()Go to the url defined in the page<P extends FluentPage>
PGot to the url defined in the page, using given parameters.voidisAt()Check if the browser is on this page.voidCheck if the browser is on this page, after replacing parameters with given values.voidisAtUsingSelector(org.openqa.selenium.By by) Validates whether the page, determined by the argumentByobject, is loaded.voidisAtUsingUrl(String urlTemplate) URL-matching implementation for isAt().parseUrl()Get the parameter values of page URL extracted from current URL.Get the parameter values of page URL extracted from given URL.voidvoidVerifies whether page is loaded.Methods inherited from class io.fluentlenium.core.DefaultFluentContainer
getDriver, getFluentControl, initFluentMethods inherited from class io.fluentlenium.core.FluentControlImpl
getConfiguration, getControlContainerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.fluentlenium.core.FluentControl
alert, asComponentList, asComponentList, asComponentList, asComponentList, asComponentList, asComponentList, asFluentList, asFluentList, asFluentList, asFluentList, asFluentList, asFluentList, await, canTakeScreenShot, capabilities, css, el, events, executeAsyncScript, executeScript, find, find, find, find, getAppiumDriver, getAwaitAtMost, getAwaitPollingEvery, getBaseUrl, getBrowserTimeout, getBrowserTimeoutRetries, getCapabilities, getChromiumApi, getConfiguration, getConfigurationDefaults, getConfigurationFactory, getControlContainer, getCookie, getCookies, getCustomProperty, getDeleteCookies, getDriver, getDriverLifecycle, getEventsEnabled, getFluentControl, getHtmlDumpMode, getHtmlDumpPath, getImplicitlyWait, getPageLoadTimeout, getRemoteUrl, getScreenshotMode, getScreenshotPath, getScriptTimeout, getWebDriver, goTo, goTo, goToInNewTab, inject, injectComponent, isComponentClass, isComponentListClass, keyboard, mouse, newComponent, newComponentList, newComponentList, newComponentList, newComponentList, newComponentList, newComponentList, newFluent, newFluentList, newFluentList, newFluentList, newFluentList, newFluentList, newFluentList, newInstance, pageSource, performanceTiming, setAwaitAtMost, setAwaitPollingEvery, setBaseUrl, setBrowserTimeout, setBrowserTimeoutRetries, setCapabilities, setConfigurationFactory, setCustomProperty, setDeleteCookies, setDriverLifecycle, setEventsEnabled, setHtmlDumpMode, setHtmlDumpPath, setImplicitlyWait, setPageLoadTimeout, setRemoteUrl, setScreenshotMode, setScreenshotPath, setScriptTimeout, setWebDriver, switchTo, switchTo, switchTo, switchToDefault, takeHtmlDump, takeHtmlDump, takeScreenshot, takeScreenshot, url, window
-
Constructor Details
-
FluentPage
public FluentPage()Creates a new fluent page. -
FluentPage
Creates a new fluent page, using given fluent control.- Parameters:
control- fluent control
-
-
Method Details
-
getClassAnnotations
-
getUrl
Description copied from interface:FluentPageControlGets the URL of the page. It can contain mandatory parameters{param}and optional parameters{?param1}.- Specified by:
getUrlin interfaceFluentPageControl- Returns:
- page URL
-
getParam
Parses the current URL and returns the parameter value for the argument parameter name.In case the parameter is not defined in the
PageUrlannotation, or the parameter (mandatory or optional) has no value in the actual URL, this method returnsnull.There is also caching in place to improve performance. It compares the current URL with the cached URL, and if they are the same, the parameter is returned from the cached values, otherwise the URL is parsed again and the parameters are returned from the new URL.
Examples (for template + URL + paramName combinations):
"/abc/{param1}/def/{param2}" + "/abc/param1val/def/param2val" + "param1" -> "param1val" "/abc/{param1}/def/{param2}" + "/abc/param1val/def/param2val" + "param4" -> null "/abc{?/param1}/def/{param2}" + "/abc/param1val/def/param2val" + "param1" -> "param1val" "/abc{?/param1}/def/{param2}" + "/abc/def/param2val" + "param1" -> ull- Parameters:
parameterName- the parameter to get the value of- Returns:
- the desired parameter value or null if a value for the given parameter name is not present
- Throws:
IllegalArgumentException- when the argument param is null or empty
-
getUrl
Description copied from interface:FluentPageControlURL of the page, after replacing parameters with given values.- Specified by:
getUrlin interfaceFluentPageControl- Parameters:
parameters- parameter values- Returns:
- Effective url generated for given parameter values
-
isAt
public void isAt()Description copied from interface:FluentPageControlCheck if the browser is on this page.- Specified by:
isAtin interfaceFluentPageControl
-
isAt
Description copied from interface:FluentPageControlCheck if the browser is on this page, after replacing parameters with given values.- Specified by:
isAtin interfaceFluentPageControl- Parameters:
parameters- list of parameters
-
isAtUsingUrl
URL-matching implementation for isAt(). Validates whether the page, determined by the argument URL template, is loaded.If there is a
PageUrlannotation applied on the class and it has thefileattribute defined, this method will skip the url parsing to skip URL check because it is not able to get local file path relatively.- Parameters:
urlTemplate- URL Template, must be non-null- Throws:
AssertionError- when the current URL doesn't match the expected page URL
-
isAtUsingSelector
public void isAtUsingSelector(org.openqa.selenium.By by) Validates whether the page, determined by the argumentByobject, is loaded.- Parameters:
by- by selector, must be non-null- Throws:
AssertionError- if the element using the argument By is not found for the current page
-
go
Description copied from interface:FluentPageControlGo to the url defined in the page- Specified by:
goin interfaceFluentPageControl- Type Parameters:
P- the fluent page- Returns:
FluentPage object
-
go
Description copied from interface:FluentPageControlGot to the url defined in the page, using given parameters.- Specified by:
goin interfaceFluentPageControl- Type Parameters:
P- the fluent page- Parameters:
params- page url parameter values- Returns:
FluentPage object
-
parseUrl
Description copied from interface:FluentPageControlGet the parameter values of page URL extracted from current URL.- Specified by:
parseUrlin interfaceFluentPageControl- Returns:
- parameter values
-
verifyIsLoaded
public void verifyIsLoaded() -
unshadowAllFields
public void unshadowAllFields() -
parseUrl
Description copied from interface:FluentPageControlGet the parameter values of page URL extracted from given URL.- Specified by:
parseUrlin interfaceFluentPageControl- Parameters:
url- url to parse- Returns:
- parameter values
-