class Browser extends Object
The browser is the centre of Geb. It encapsulates a WebDriver implementation and references a Page object that provides access to the content.
Browser objects dynamically delegate all method calls and property read/writes that it doesn't implement to the current
page instance via propertyMissing ( )
and methodMissing ( )
.
Modifiers | Name | Description |
---|---|---|
static String |
CLOSE_OPTION |
|
protected static String |
HAS_NETWORK_CONDITIONS_CLASS_NAME |
|
static String |
QUERY_STRING_SEPARATOR |
|
static String |
UTF8 |
Constructor and description |
---|
Browser
() Create a new browser with a default configuration loader, loading the default configuration file. |
Browser
(Configuration config) Create a new browser backed by the given configuration. |
Browser
(Map props, Configuration config) Creates a new browser instance backed by the given configuration, then applies props as property overrides on the browser. |
Type Params | Return Type | Name and description |
---|---|---|
<T extends Page> |
T |
at(Class<T> pageType) Checks if the browser is at the current page by running the at checker for this page type |
<T extends Page, R> |
R |
at(Class<T> pageType, Closure<R> assertions) Checks if the browser is at the current page by running the at checker using at(pageType) . |
<T extends Page> |
T |
at(T page) Checks if the browser is at the current page by running the at checker for this page instance |
<T extends Page, R> |
R |
at(T page, Closure<R> assertions) Checks if the browser is at the current page by running the at checker using at(page) . |
|
void |
checkIfAtAnUnexpectedPage(Class<? extends Page>[] expectedPages) Check if at one of the pages configured to be unexpected. |
|
void |
checkIfAtAnUnexpectedPage(Page[] expectedPages) Check if at one of the pages configured to be unexpected. |
|
void |
cleanReportGroupDir() Removes the directory returned by getReportGroupDir() from the filesystem if it exists. |
|
void |
clearCookies(String[] additionalUrls) Clears cookies for the current domain and a number of additional domains by navigating the browser to each of to the urls passed as the argument to this method and clearing cookies for them. |
|
void |
clearCookies() Clears all cookies for the current domain that the browser has. |
|
void |
clearCookiesQuietly() Clears all cookies that the browser currently has, suppressing any webdriver exceptions. |
|
void |
clearWebStorage() Clears web storage, that is both local and session storage for the current domain. |
|
void |
clearWebStorageQuietly() Clears web storage, that is both local and session storage for the current domain, suppressing any webdriver exceptions. |
|
void |
close() Closes the current driver window. |
|
protected NavigatorFactory |
createNavigatorFactory() Called to create the navigator factory, the first time it is requested. |
<T extends Page> |
T |
createPage(Class<T> pageType) Creates a new instance of the given page type and initialises it. |
<T> |
protected T |
doWithWindow(Map options, Closure<T> block) |
|
static Browser |
drive(Closure script) Creates a new browser object via the default constructor and executes the closure with the browser instance as the closure's delegate. |
|
static Browser |
drive(Configuration conf, Closure script) Creates a new browser with the configuration and executes the closure with the browser instance as the closure's delegate. |
|
static Browser |
drive(Map browserProperties, Closure script) Creates a new browser with the properties and executes the closure with the browser instance as the closure's delegate. |
|
static Browser |
drive(Browser browser, Closure script) Executes the closure with browser as its delegate. |
<T> |
Optional<T> |
driverAs(Class<T> castType) |
|
Set<String> |
getAvailableWindows() Retrieves all available windows |
|
String |
getBaseUrl() The url to resolve all relative urls against. |
|
Configuration |
getConfig() Provides access to the configuration object assoicated with this browser. |
|
String |
getCurrentUrl() Retrieves the current url |
|
String |
getCurrentWindow() Retrieves current window |
|
WebDriver |
getDriver() The driver implementation used to automate the actual browser. |
|
JavascriptInterface |
getJs() Returns a newly created javascript interface connected to this browser. |
|
WebStorage |
getLocalStorage() Returns an object that allows access to and manipulation of local storage. |
|
NavigatorFactory |
getNavigatorFactory() Returns the factory that creates navigator instances for this browser. |
|
Page |
getPage() Provides access to the current page object. |
|
File |
getReportGroupDir() The directory that will be used for the method. |
|
WebStorage |
getSessionStorage() Returns an object that allows access to and manipulation of session storage. |
|
void |
go(String url) Sends the browser to the given url. |
|
void |
go(String url, UrlFragment fragment) Sends the browser to the given url and fragment. |
|
void |
go(Map params, UrlFragment fragment) Sends the browser to the base url with the given query params and fragment. |
|
void |
go(Map params, String url, UrlFragment fragment) Sends the browser to the given url with the given query params and fragment. |
|
boolean |
isAt(Class<? extends Page> pageType, boolean honourGlobalAtCheckWaiting) Checks if the browser is at the given page by running the at checker for this page type, suppressing assertion errors. |
|
boolean |
isAt(Page page, boolean honourGlobalAtCheckWaiting) Checks if the browser is at the given page by running the at checker for this page instance, suppressing assertion errors. |
|
Object |
methodMissing(String name, Object args) Delegates the method call directly to the current page object. |
<T extends Page> |
T |
page(Class<T> pageClass) Changes the browser's page to be an instance of the given class. |
|
Page |
page(Class<? extends Page>[] potentialPageClasses) Changes the browser's page to be an instance of the first given type whose at checker returns a true value. |
<T extends Page> |
T |
page(T page) Sets this browser's page to be the given page after initializing it. |
|
Page |
page(Page[] potentialPageInstances) Changes the browser's page to be an instance of the first given instance whose at checker returns a true value. |
|
void |
pause() Indefinitely waits for geb.unpause javascript variable to be set to true in the driven browser. |
|
Object |
propertyMissing(String name) Delegates the property access directly to the current page object. |
|
Object |
propertyMissing(String name, Object value) Delegates the property assignment directly to the current page object. |
|
void |
quit() Quits the driver. |
|
void |
report(String label) Writes a snapshot of the browser's state to the current getReportGroupDir() using the config's reporter. |
|
void |
reportGroup(String path) Sets the "group" for all subsequent reports, which is the relative path inside the reports dir that reports will be written to. |
|
void |
reportGroup(Class clazz) Sets the report group to be the full name of the class, replacing "." with "/". |
|
void |
resetNetworkLatency() Removes any previously configured network latency. |
|
void |
setBaseUrl(String baseUrl) Changes the base url used for resolving relative urls. |
|
void |
setDriver(WebDriver driver) Set (or change) the webdriver underneath this browser. |
|
void |
setNetworkLatency(java.time.Duration duration) Allows to introduce network latency to the browser being driven. |
|
protected Object |
switchToWindow(String window) |
<T extends Page> |
T |
to(Map params, Class<T> pageType, Object[] args) Sends the browser to the given page type's url, sets the page to a new instance of the given type and verifies the at checker of that page. |
<T extends Page> |
T |
to(Map params, Class<T> pageType, UrlFragment fragment, Object[] args) Sends the browser to the given page type's url, sets the page to a new instance of the given type and verifies the at checker of that page. |
<T extends Page> |
T |
to(Map params, T page, Object[] args) Sends the browser to the given page instance url, sets the page to the given page instance and verifies the at checker of that page. |
<T extends Page> |
T |
to(Map params, T page, UrlFragment fragment, Object[] args) Sends the browser to the given page instance url, sets the page to a new instance of the given type and verifies the at checker of that page. |
|
void |
verifyAtImplicitly(Class<? extends Page> targetPage) |
|
void |
verifyAtImplicitly(Page targetPage) |
<T extends Page> |
T |
via(Map params, Class<T> pageType, Object[] args) Sends the browser to the given page type's url and sets the page to a new instance of the given type. |
<T extends Page> |
T |
via(Map params, Class<T> pageType, UrlFragment fragment, Object[] args) Sends the browser to the given page type's url and sets the page to a new instance of the given type. |
<T extends Page> |
T |
via(Map params, T page, Object[] args) Sends the browser to the given page instance url and sets the page the given instance. |
<T extends Page> |
T |
via(Map params, T page, UrlFragment fragment, Object[] args) Sends the browser to the given page instance url and sets the page the given instance. |
<T> |
T |
withNewWindow(Map options, Closure windowOpeningBlock, Closure<T> block) Expects the first closure argument to open a new window and calls the second closure argument in the context of the newly opened window. |
<T> |
T |
withNewWindow(Closure windowOpeningBlock, Closure<T> block) Expects the first closure argument to open a new window and calls the second closure argument in the context of the newly opened window. |
<T> |
T |
withWindow(String window, Closure<T> block) Executes a closure within the context of a window specified by a name |
<T> |
List<T> |
withWindow(Closure specification, Closure<T> block) Executes a closure within the context of all windows for which the specification closure returns groovy truth. |
<T> |
List<T> |
withWindow(Map options, Closure specification, Closure<T> block) Executes a closure within the context of all windows for which the specification closure returns groovy truth. |
<T> |
T |
withWindow(Map options, String window, Closure<T> block) Executes a closure within the context of a window specified by a name |
If the driver is remote, this object allows access to its capabilities (users of Geb should not access this object, it is used internally).
Create a new browser with a default configuration loader, loading the default configuration file.
Create a new browser backed by the given configuration.
Creates a new browser instance backed by the given configuration, then applies props
as property overrides on the browser.
Checks if the browser is at the current page by running the at checker for this page type A new instance of the page is created for the at check. If the at checker is successful, this browser object's page instance is updated to the new instance of the given page type and the new instance is returned. If the given pageType does not define an at checker, UndefinedAtCheckerException is thrown.
If implicit assertions are enabled (which they are by default). This method will only ever return a page instance or throw an AssertionError
Checks if the browser is at the current page by running the at checker using at(pageType)
.
If the at checker is successful, the assertions
closure passed as the last argument is executed with the delegate set to an instance of the pageType
class.
If implicit assertions are enabled (which they are by default), each statement in the assertions
closure is implicitly asserted.
assertions
closureChecks if the browser is at the current page by running the at checker for this page instance If the at checker is successful, this browser object's page instance is updated to the said instance of the page. If the given page object does not define an at checker, UndefinedAtCheckerException is thrown.
If implicit assertions are enabled (which they are by default), this method will only ever return a page instance or throw an AssertionError
Checks if the browser is at the current page by running the at checker using at(page)
.
If the at checker is successful, the assertions
closure passed as the last argument is executed with the delegate set to the said instance of the page.
If implicit assertions are enabled (which they are by default), each statement in the assertions
closure is implicitly asserted.
assertions
closureCheck if at one of the pages configured to be unexpected.
expectedPages
- allows to specify which of the unexpected pages to ignore for the checkCheck if at one of the pages configured to be unexpected.
expectedPages
- allows to specify which of the unexpected pages to ignore for the checkRemoves the directory returned by getReportGroupDir() from the filesystem if it exists.
Clears cookies for the current domain and a number of additional domains by navigating the browser to each of to the urls passed as the argument to this method and clearing cookies for them.
additionalUrls
- urls for which the cookies should be cleared in addition to the current domainClears all cookies for the current domain that the browser has.
If the driven browser has accumulated cookies for additional domains that are to be cleared then clearCookies(java.lang.String[]) method should be used.
Clears all cookies that the browser currently has, suppressing any webdriver exceptions.
Clears web storage, that is both local and session storage for the current domain.
Clears web storage, that is both local and session storage for the current domain, suppressing any webdriver exceptions.
Closes the current driver window.
Called to create the navigator factory, the first time it is requested.
Creates a new instance of the given page type and initialises it.
Creates a new browser object via the default constructor and executes the closure with the browser instance as the closure's delegate.
Creates a new browser with the configuration and executes the closure with the browser instance as the closure's delegate.
Creates a new browser with the properties and executes the closure with the browser instance as the closure's delegate.
Executes the closure with browser as its delegate.
Retrieves all available windows
The url to resolve all relative urls against. Typically the root of the application or system Geb is interacting with.
The base url is determined by the configuration.
Provides access to the configuration object assoicated with this browser.
Retrieves the current url
Retrieves current window
The driver implementation used to automate the actual browser.
The driver implementation to use is determined by the configuration.
Returns a newly created javascript interface connected to this browser.
Returns an object that allows access to and manipulation of local storage.
Returns the factory that creates navigator instances for this browser.
Provides access to the current page object.
All browser objects are created with a page type of Page initially.
The directory that will be used for the method.
Uses the Configuration.getReportsDir for the base location for reports (throwing an exception if this is not set), and appending the current report group. The returned file object is guaranteed to exist on the filesystem.
If the current report group is null
, this method returns the same as config.reportsDir
.
Returns an object that allows access to and manipulation of session storage.
Sends the browser to the given url. If it is relative it is resolved against the base url.
Sends the browser to the given url and fragment. If the url is relative it is resolved against the base url.
Sends the browser to the base url with the given query params and fragment.
Sends the browser to the given url with the given query params and fragment. If the url is relative it is resolved against the base url.
Checks if the browser is at the given page by running the at checker for this page type, suppressing assertion errors. If the at checker is successful, this browser object's page instance is updated the one the method is called with. If the given pageType does not define an at checker, UndefinedAtCheckerException is thrown. If the at check throws an AssertionError (as it will when implicit assertions are enabled) this method will suppress the exception and return false.
Checks if the browser is at the given page by running the at checker for this page instance, suppressing assertion errors. If the at checker is successful, this browser object's page instance is updated the one the method is called with. If the given page instance does not define an at checker, UndefinedAtCheckerException is thrown. If the at check throws an AssertionError (as it will when implicit assertions are enabled) this method will suppress the exception and return false.
Delegates the method call directly to the current page object.
Changes the browser's page to be an instance of the given class.
This method performs the following:
Note that it does not verify that the page matches the current content by running its at checker
Changes the browser's page to be an instance of the first given type whose at checker returns a true value.
This method performs the following:
Sets this browser's page to be the given page after initializing it.
This method performs the following:
Note that it does not verify that the page matches the current content by running its at checker
Changes the browser's page to be an instance of the first given instance whose at checker returns a true value.
This method performs the following:
Indefinitely waits for geb.unpause
javascript variable to be set to true
in the driven browser.
Can be used as an alternative to setting a breakpoint and running the JVM in debug mode for debugging purposes.
Delegates the property access directly to the current page object.
Delegates the property assignment directly to the current page object.
Quits the driver.
Writes a snapshot of the browser's state to the current getReportGroupDir() using the config's reporter.
label
- The name for the report file (should not include a file extension)Sets the "group" for all subsequent reports, which is the relative path inside the reports dir that reports will be written to.
path
- a relative path, or null
to have reports written to the base reports dirSets the report group to be the full name of the class, replacing "." with "/".
Removes any previously configured network latency.
Changes the base url used for resolving relative urls.
This method delegates to Configuration.setBaseUrl.
Set (or change) the webdriver underneath this browser.
This should only be called before making any requests as a means to override the driver instance that would be created from the configuration. Where possible, prefer using the configuration mechanism to specify the driver implementation to use.
This method delegates to Configuration.setDriver.
Allows to introduce network latency to the browser being driven.
Helpful for exposing network related timing issues in automation code under development.
Only supported when using a driver implementing or augmentable to org.openqa.selenium.chromium.HasNetworkConditions.
Sends the browser to the given page type's url, sets the page to a new instance of the given type and verifies the at checker of that page.
Sends the browser to the given page type's url, sets the page to a new instance of the given type and verifies the at checker of that page.
Sends the browser to the given page instance url, sets the page to the given page instance and verifies the at checker of that page.
Sends the browser to the given page instance url, sets the page to a new instance of the given type and verifies the at checker of that page.
Sends the browser to the given page type's url and sets the page to a new instance of the given type.
Sends the browser to the given page type's url and sets the page to a new instance of the given type.
Sends the browser to the given page instance url and sets the page the given instance.
Sends the browser to the given page instance url and sets the page the given instance.
Expects the first closure argument to open a new window and calls the second closure argument in the context of the newly opened window. A map of options can also be specified that allows to close the new window, switch to a different page for closure executed in the context of the new window and also to wait for the window opening if the window opening is asynchronous.
options
- a map that can be used to pass additional optionswindowOpeningBlock
- a closure that should open a new windowblock
- closure to be executed in the new window contextblock
Expects the first closure argument to open a new window and calls the second closure argument in the context of the newly opened window.
windowOpeningBlock
- a closure that should open a new windowblock
- closure to be executed in the new window contextblock
Executes a closure within the context of a window specified by a name
window
- name of the window to use as contextblock
- closure to be executed in the window contextblock
Executes a closure within the context of all windows for which the specification closure returns groovy truth.
specification
- closure executed once in context of each window, if it returns groovy truth for a given
window then also the block closure is executed in the context of that windowblock
- closure to be executed in the window contextblock
for each window for which specification
returns groovy truthExecutes a closure within the context of all windows for which the specification closure returns groovy truth.
options
- a map that can be used to pass additional optionsspecification
- closure executed once in context of each window, if it returns groovy truth for a given
window then also the block closure is executed in the context of that windowblock
- closure to be executed in the window contextblock
for each window for which specification
returns groovy truthExecutes a closure within the context of a window specified by a name
options
- a map that can be used to pass additional optionswindow
- name of the window to use as contextblock
- closure to be executed in the window contextblock
Groovy API Documentation for Geb 6.0 - Licensed under the Apache License, Version 2.0 - http://www.gebish.org