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

#203 Upgrade to Selenium 4 / Selenide 6 #213

Closed oomelianchuk closed 8 months ago

oomelianchuk commented 2 years ago

As Selenium 4 introduced changes in the grid architecture, the approach we used to communicate with the Selenium grid under proxy doesn't work any longer. First of all, we have to switch to Netty as the OkHttp client is no more supported by selenium. To communicate with the driver on the grid, Selenium uses the org.openqa.selenium.remote.http.NettyClient. The implementation of this class doesn't allow passing its own proxy configurations. It's also not possible to extend the NettyClient class as it has a private constructor. That's why I'd suggest using the custom client to communicate with the grid (NeoClient). This class should have the same config as NettyClient has but also support passing proxy to the AsyncHttpClient, which is responsible for communication. Unfortunately, some of the configs NettyClient uses have default access modifiers, and therefore, to access them, the class should be located in the org.openqa.selenium.remote.http.netty package.