Handling of the Chromedriver for Selenium Tests

I’m in the process of enabling the webapp integration tests again (Webapp Tests not runnable for Tomcat · Issue #930 · operaton/operaton · GitHub). While doing so, I realized that the current setup for getting the Chromedriver might be improved. Currently there is a fixed version in the pom files (version.chromedriver) which is rather old. This gets downloaded to the /target folder and is used by selenium. We could change it to always fetch the latest version, but the crhomedriver version has to be in sync with the installed Chrome browser, and on local dev machines this might not always be the case and cause frustration.

My proposal is to not let the test suite download the chromedriver, but let the developers manage chromedriver and Chrome browser on their own machine. This way, everybody can make sure that their local setup is in sync, and we can also cleanly install the correct versions for testing in GitHub pipelines.

What do you think?

Until a few years ago (before Playwright), Selenium was the stack behind Web-Automation with Robot Framework. We ran in to similar issues, where IT support would update browsers on our test-machines and then suddenly our webdriver would not match the browser anymore.
We used this command line tool provided by the Robot Framework community to automatically download matching webdrivers for chrome and firefox: webdrivermanager·PyPI

It’s python, thus can be used in Python, but you can also execute it on CLI. Only thing is that you would have to add Python to the devenv to execute it. Or find/port the functionality in Java realm.