The Geb home page can be found at http://www.gebish.org.
The API reference can be found here.
Support for Geb is offered on the user@geb.codehaus.org mailing list, which can be subscribed to here.
Ideas and new features for Geb can be discussed on the dev@geb.codehaus.org mailing list, which can be subscribed to here.
This page lists the high level changes between versions of Geb.
via() method that behaves the same way as to() behaved previously - it sets the page on the browser and does not verify the at checker of that page[GEB-249].Navigator implementations by specifying a custom NavigatorFactory, see this manual section for more information [GEB-96].withFrame() method that allow to switch into frame context and change the page in one go and also automatically change it back to the original page after the call, see switching pages and frames at once in the manual [GEB-213].wait, page and close options can be passed to withNewWindow() calls, see this manual section for more information [GEB-167].Browser.at() and Browser.to() to return the exact type of the page that was asserted to be at / was navigated to.ReportingListener objects can be registered to observe reporting (see: reporting.html#listening_to_reporting(wait: true, required: false) content instead of always returning null [GEB-216].isAt() behaves the same as at() in regards to updating the browser’s page instance to the given page type if its at checker is successful [GEB-227].select elements has been reworked to be far more efficient [GEB-229].to(Class<? extends Page>) method now changes the page on the browser and verifies the at checker of that page in one method call [GEB-1], [GEB-249]; use via() if you need the old behaviourgetAttribute(String) on Navigator now returns null for boolean attributes that are not present.at() and to() methods on Browser now return a page instance if they succeed and via() method always returns a page instance [GEB-217].withFrame() calls that don’t take a page argument now change the browser page to what it was before the call, after the call [GEB-222].Navigators anymore; the new unique() method on Navigator can be used to remove duplicates if needed [GEB-223].at(Page) and isAt(Page) methods on Browser have been removed as they were inconsistent with the rest of the API [GEB-242].click(Class<? extends Page>) and to: content option now verify page after switching to the new one to stay consistent with the new behaviour of to(Class<? extends Page>) [GEB-250].startsWith(), contains() etc. now work for selecting via element text now works for multiline (i.e. <br/>) text [GEB-202]moduleList() methodwaitFor() callswaitFor() calls are now transformed so that every statement in them is asserted - this provides better reporting on waitFor() timeouts.at closure properties of Page classes are now transformed so that every statement in them is asserted - this provides better reporting on failed at checksisAt() method on Browser that behaves like at() used to behave before, i.e. does not throw AssertionError but returns false if at checking failswithAlert() and withConfirm() now accept a wait option and the possible values are the same as for waiting contentclick() now instructs the browser to click only on the first element the navigator has matchedclick() method variants return the recieverrequired: false, wait: true return null and do not throw WaitTimeoutException if the timeout expireswaitFor() callsat() now throws AssertionException if at checking fails instead of returning falseinteract() function for mouse and keyboard actions which delegates to the WebDriver Actions classmoduleList() function for repeating contentwithFrame() method for working with frameswithWindow() and withNewWindow() methods for working with multiple windowsgetCurrentWindow() and getAvailableWindows() methods to browser that delegate to the underlying driver instancealiases parameter in content DSLPage.convertToPath() function is now responsible for adding a prefix slash if required (i.e. it’s not added implicitly in Page.getPageUrl()) [GEB-139].false instead of null<select> elements with Geb now requires an explicit dependency on an extra WebDriver jar (see the section on installation for more info)Navigator classes() method now returns a List (instead of Set) and guarantees that it will be sorted alphabeticallyNavigator.getAttribute returns null rather than the empty string when an attribute is not found.jquery property on Navigator now returns whatever the jQuery method called on it returns.wait: true to make Geb implicitly wait for it when it is requestedTakesScreenshot interface (which is nearly all)BindingUpdater class that can manage a groovy script binding for use with Gebquit() and close() methods to browser that delegate to the underlying driver instancegeb.Browser.drive() methods now return the used Browser instanceheight, width, x and y properties to navigator objects and modulesgeb.waiting.WaitTimeoutException instead of AssertionErroronLoad() and onUnload() page methods both have changed their return types from def to voidgeb.spock.GebReportingSpec instead of grails.plugin.geb.GebSpec)getBaseUrl() method from testing subclasses has been removed, use the configuration mechanismnullnull is returned)geb-easyb and Grails support)geb.PageChangeListenerwaitFor() methods added, making dealing with dynamic pages easieralert() and confirm() dialogsdisplayed property to navigator objects for determining visibilityfind as an alias for $ (e.g. find("div.section"))page(List<Class>) method that sets the page to the first type whose at-checker matches the pageNavigator objectsonLoad()/onUnload()drive() blocks are no longer wrapped with DriveExceptionat(Class pageClass) method no longer requires the existing page instance to be of that class (page will be updated if the given type matches)Initial Public Release
The Book of Geb - 0.9.0-RC-3 - April, 2013
Licensed under the Apache License, Version 2.0