Poundex commented on issue #204:
URL: https://github.com/apache/groovy-geb/issues/204#issuecomment-2481153044

   There should be fixes and changes to Geb here. The workaround only covers 
the DownloadSupport, and even that shouldn't be necessary. It is a common 
enough use-case to be testing something far away with the RemoteWebDriver, 
either if its because TestContainers are in use or some kind of browser farm 
like Browser Stack. The workaround only addresses the container case and 
doesn't do anything to make customizing/replacing the other Support classes in 
Page/Module, either, where Geb is currently demonstrating poor and user-hostile 
library behaviour. 
   
   The first change should be to make the Support fields in Page and Module 
protected rather than private. This allows sub-classes to implement their own 
`init` method and customise or replace these objects. This is the lowest-level 
fix, it would still need user effort to customise the file downloading but this 
allows the most complete customisation. 
   
   Next, I think that the GebConfig should allow users to define common 
configuration properties for the Support objects, or supply custom factories 
for replacing them without having to implement their own `init` method in Page 
and Module. This will be a bit more limited but provide a better experience 
when users are simply trying to pass in some config, and not bring completely 
custom Support implementations. 
   
   Then later on I think a TestContainers extension should join Geb's existing 
Browser Stack and Sauce Labs built-in extensions (which should be improved, as 
a quick glance suggests that these have the same problem) so that some 
common-sense configurations are applied automatically when using certain 
extensions or Driver types. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to