Re: [GEB] Geb in 2026

James Fredley <[email protected]> Fri, 3 Jul 2026 19:00:51 -0400
Newsgroups gmane.comp.lang.groovy.devel
Message-ID <[email protected]>
Hey folks,

I’ve been thinking about ways to bring some of Playwright’s strengths 
(BrowserContext isolation, built-in auto-waiting for actionable 
elements, strong locator strategies, tracing with 
screenshots/DOM/network, video recording, and network interception) into 
Geb without forcing everyone to change.

Since Geb is currently tightly coupled to the Selenium WebDriver model, 
a clean path could be an optional geb-direct module under 
org.apache.groovy.geb. It would depend on the official Playwright Java 
bindings, add a configuration-driven backend (something like driver = 
"playwright" or a playwright { browser = "chromium" } block in 
GebConfig), and map Geb’s Navigator/content DSL, Browser, $(), waitFor, 
Page at checkers, and modules onto Playwright Locators and Contexts. 
This would let users opt in for the reliability and debugging wins while 
keeping all existing WebDriver/Selenium usage completely untouched as 
the default, and advanced features like tracing could hook into Geb’s 
existing Reporter system.

I’d be interested in writing this module if there’s interest from the 
community.

We have a large number of Geb tests in Grails-core and this would help 
them run smoothly in CI.

James Fredley
VP, Apache Grails

On 2025/12/31 22:17:56 Jonny wrote:
 > I've been doing some thinking about Geb and what things I'd like to get
 > done in the next year.
 >
 > This isn't so much announcing a formal roadmap as asking folks for a
 > wishlist for Geb. Here are some of the bigger bits that are on my radar.
 > Does anyone else have things on theirs?
 >
 > *Bugfixes*
 >
 > *Better thread safety in GebTestManager*
 >
 > https://github.com/apache/groovy-geb/issues/201 and other issues make me
 > think that GebTestManager makes some assumptions, particularly around how
 > JUnit lifecycle methods handle tests, that just don't hold in all 
cases. My
 > hunch is that there are a lot of bugs embedded in this for parallel
 > execution.
 >
 > Some part of me thinks that the deep answer here is, at least in part, to
 > use newer Java concurrency constructs, such as structured concurrency
 > <https://openjdk.org/jeps/453>, but that raises some backward 
compatibility
 > concerns.
 >
 > *Projects*
 >
 > *Testcontainers integration*
 > Carl Marcum's work back in October to provide some easy-to-use 
integration
 > between Geb and Testcontainers seems like a great thing to bring into the
 > Geb project as a first class module. I'd outlined some thoughts on that
 > <https://lists.apache.org/thread/k2z0nzdgxrzx2kx429pk6sddtd0r4g5n> in
 > another thread, but how do others feel?
 >
 > *Release automation*
 > I let this lapse a bit, but that may be a bit of a saving grace. Apache's
 > Trusted Release Platform 
<http://github.com/apache/tooling-trusted-releases>
 > seems to be coming along, based on the talk in their Slack channel
 > <https://the-asf.slack.com/archives/C049WADAAQG>.
 >
 > *Bring example projects home*
 > We still have a bunch of example projects out in the old Github org. I
 > think those are probably best brought in as included builds in the 
main Geb
 > repo. This is basically what JMH does with their samples project
 > <https://github.com/openjdk/jmh/tree/master/jmh-samples>, and I think it
 > would be a bit easier to maintain than scattered repositories.
 >
 > *Geb 9*
 > I'd also like to think ahead to breaking/backwards-incompatible changes
 > that we'd like to make.
 >
 >    1. Require Java 25 to build, compile to Java 11 as target. Groovy 5
 >    requires Java 17 to build, Java 11 as target, so I figured we 
should be
 >    conservative in what we allow, but aggressive in the tooling we use.
 >    2. Groovy 5 (and supporting version of Spock, 2.4-groovy-5.0)
 >    3. Move from javax -> jakarta
 >
 > What about BiDi?
 > BiDirectional functionality in WebDriver
 > <https://www.w3.org/TR/webdriver-bidi/> is something we need to think 
about
 > how to best expose in Geb. I haven't thought deeply about this, and it
 > frankly seems like the biggest blind spot that needs some light shined on
 > it.
 >
 > What about AI?
 > AI-based testing obviously has huge implications for browser testing.
 > https://www.browserstack.com/guide/selenium-with-ai is a good read 
for some
 > near-to-hand reaches that Geb could follow or build on. What other things
 > should we be considering in this vein?
 >
 > Thanks for any thoughts. Happy New Year!
 >
 > Best,
 >
 > Jonny
 >