groovy-geb is a free, open source frameworks & platforms project written in Groovy and released under Apache-2.0. It has 1,173 GitHub stars, 235 forks and 7 open issues, and was last pushed 21 hours ago. On this registry it ranks #109 of 128 tracked projects in Frameworks & Platforms, with 5 head-to-head comparisons available.

What is groovy-geb?

Geb (pronounced "jeb") is an Apache-2.0 browser automation framework for the Groovy and Java ecosystems that combines WebDriver, jQuery-style content selection and Page Object modelling, aimed at developers and test engineers who write end-to-end and functional browser tests on the JVM.

What it is

Geb is a browser automation solution and testing framework hosted by the Apache Software Foundation and written in Groovy, with use from Java also reflected in its topic list. Its README describes it as bringing together the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modelling and the expressiveness of the Groovy language. In this registry it sits under Developer Tools / Frameworks & Platforms, and its topics — browser-testing, e2e-testing, end-to-end-testing, functional-testing, bdd-style-testing-framework, selenium, groovy, java and test — map closely to that description.

The concrete problem it solves is the low-level plumbing that comes with driving a browser through WebDriver directly: element lookup, selector handling and repeated navigation code scattered across a test suite. Geb replaces that hand-rolled WebDriver code with a Groovy DSL in which page structure is declared once through Page Object modelling and content is selected with jQuery-style expressions. The result is a layer between Selenium WebDriver and the test suite, so that tests read as BDD-style statements about page content rather than as sequences of driver calls.

Key capabilities

  • WebDriver-based browser automation, forming the execution layer that Geb drives.
  • jQuery-style content selection for locating and navigating page content within tests.
  • Page Object modelling, so that a page's structure and content are declared in one place and reused across tests.
  • A Groovy DSL that gives tests the expressiveness of the Groovy language, with Java listed among the project's topics.
  • BDD-style testing support, reflected in the bdd-style-testing-framework topic.
  • End-to-end, functional and browser testing workflows, as listed in the repository topics.
  • Publication to Maven Central under the org.gebish:geb-core coordinates, with the Maven Central badge in the README pointing at that artifact.

Who uses it and how

  • JVM teams already working in Groovy or Java, who can add Geb to an existing build rather than adopting a separate runtime.
  • Test engineers writing end-to-end browser tests who want page structure modelled as objects rather than repeated inline selector code.
  • Teams adopting a BDD style for functional tests, given the framework's BDD-style testing topic.
  • Projects standardising on Selenium WebDriver that want a higher-level, Groovy-based authoring layer on top of it.
  • Contributors and integrators who follow the project through its geb-users@groovy.apache.org mailing list, GitHub Discussions forum and the #geb channel on the Groovy Slack workspace.

Getting started

Geb is consumed from Maven Central as org.gebish:geb-core, and setup and usage information is published on the project site at https://groovy.apache.org/geb/. The repository README points to that site for details about the project rather than restating installation steps.

How it compares

The facts list no paid products that Geb replaces, and no directly comparable tool is named in this registry. WebDriver appears in the README as a component Geb builds on rather than as a competitor, so the framework stands alone here as the Groovy-based browser automation entry.

When to use it — and when not to

There is no database, object store or mail server to operate: Geb is a library resolved from Maven Central and run as part of a JVM build, which keeps the operational surface small. It does, however, assume a Groovy or Java toolchain and a WebDriver browser setup underneath, so teams outside the JVM or without Groovy experience should look elsewhere. The README is deliberately sparse, deferring documentation to the project site and directing usage questions away from the issue tracker to the mailing list, GitHub Discussions and Slack, so users should expect to leave the repository to learn the framework.

project readme (upstream, from github) — read inline

Build Status Maven Central GitHub contributors

Geb (pronounced “jeb”) is a browser automation solution. It brings together the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modelling and the expressiveness of the Groovy language.

For more information about the project, see the https://groovy.apache.org/geb/.

How to contribute

Please see CONTRIBUTING.md for contribution guidelines.

Submitting issues

If you'd like to submit an issue against Geb then please use the Geb GitHub issue tracker. Please avoid submitting usage questions as issues and instead join and ask your question on one of the following forums:

Forum
The geb-users@groovy.apache.org mailing list: Browse Subscribe Unsubscribe
The Geb GitHub Discussions forum
The #geb channel on the Groovy Slack workspace

Frequently asked questions

Is groovy-geb free to use?

groovy-geb is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does groovy-geb do?

Apache Geb: Very Groovy Browser Automation

What is groovy-geb written in?

groovy-geb is primarily written in Groovy. Its source is publicly available at https://github.com/apache/groovy-geb, and it has 1,173 GitHub stars.