(Trigger: I’m taking the “explain it like I’m 5” approach, so if you are tech-savvy… no offense).
I think this is theoretically possible, but I have not managed it myself for all my trying.
You see, in order to operate correctly, WebDriver (for which Geb is but a wrapper) must be the one instantiating the browser.
Thing is, Katalon Studio is also such a wrapper, so when we do a `WebUI.open()` we are calling Katalon’s implementation of WebDriver.
Now, in modern implementation of WebDriver (at least for the most common browsers, i.e. Firefox, Chrome, Safari, Opera, IE11, Edge) you do have the possibility, when instantiating the WebDriver, to call a remote one, supplying connection parameters to the call, making the new instance “recognize”, and take ownership, of an already running browser window…
But for all my Googling and help from the Java devs I work with we couldn’t get the Geb instance to take over.
Also, notice I said the remote call makes the new WebDriver recognize the already open browser window… I’m not entirely sure it can take control of another WebDriver instance.
That would be, after all, like having two drivers for the same car, literally (the word `driver` is right in the name: WebDriver).
So all in all, it might be possible, I’d love to be proven wrong and to be able to incorporate Geb/Selenide/Watir/Name-your-own-WebDriver-implementation-here into Katalon Studio, defering into it when I need finer control than available through Katalon’s DSL (don’t get me started about custom keyword, right?!)
Best hope is the Katalon’s developers come up with some way to interface good WebDriver implementation natively within the product (Geb, Selenide, WATIR? Yes, I know it’s not JVM, that’s why I say “defer into”) (last one was a nasty cough, wasn’t it? :)).