I put together an initial plan for this work here:
https://github.com/jdaugherty/groovy-geb/blob/master/design/geb-playwright-backend-plan.md
AI generated this with some input / research, but obviously there's a lot more
to this. I'm putting this out there in case someone else wants to use it to
get started.
-James
On 2026/07/09 00:03:22 Carl Marcum wrote:
> A while back I was evaluating web test frameworks to use at my employer.
>
> Playwright was a strong contender.
> I ultimately decided on Geb and now using the not yet released Testcontainers
> integration.
> I think this is worth exploring. Especially if it is opt-in.
>
> Just my 2 cents :)
>
> Best regards,
> Carl
>
> On 7/6/26 11:28 PM, James Daugherty wrote:
>
> > It's my understanding that what makes Playwright unique/stable is that it
> > actually receives events - so instead of a polling technique that selenium
> > uses it receives an event when to proceed.
> > (playwright.dev/docs/actionability) It would be nice to have this in Geb
> > since a lot of flaky tests seem to be caused by arbitrary waits.
> >
> > -James
> >
> > On 2026/07/03 23:00:51 James Fredley wrote:
> >> 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
> >> >
> >>