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
>  >
> 

Reply via email to