Xceptance / neodymium-library

A test automation library based on common other best practice open source libraries. It adds missing functionalities but does not reinvent the wheel. Just glues stuff together nicely and adds some sprinkles.
MIT License
80 stars 11 forks source link

Upgrade to Selenium 4 / Selenide 6 #203

Closed oomelianchuk closed 3 months ago

oomelianchuk commented 2 years ago

Since on October 13, 2021, Selenium 4.0 was officially released we can think about upgrading to this version. Currently, the latest Selenide version that supports the Selenium 4 is 6.1.1, so the first thing that we need to do is to update Selenide dependency to this version.

The first problem we'll face is a proxy for connection with Selenium Grid. To enable this proxy setting we used to create a custom HttpCommandExecutor instance, which used a custom HttpClient for the communication. To construct the suitable HttpClient we used to create an OkHttpClient, which contained the proxy settings and then wrap it in the OkHttpClient object offered by Selenium. This mechanism is no longer supported by Selenium. Instead, there are two HttpClient's offered: NettyClient and TracedHttpClient. Both of these classes are closed for extensions, that's why we would need to create our own implementation of HttpClient and HttpClient.Factory and define the communications.

oomelianchuk commented 2 years ago

On update consider the following issue https://github.com/SeleniumHQ/selenium/issues/10974. This may provoke issues with browser driver port collision on Linux.

wurzelkuchen commented 5 months ago

@AJakobi please check what changes in the documentation are needed, and update the documentation accordingly. In doubt talk to @oomelianchuk

AJakobi commented 5 months ago

Documentation done....assigned to @wurzelkuchen to recheck