Self explanatory code may not be much useful for some complex code where logic needs to be explained with the explanation of what exactly that method does, the use of method params, return type of methods and which exception will be thrown with various use cases. It's always a good practice to maintain some basic level of comments for the third part libraries like selenium, cypress, playwright, testNG etc which can easily be used in IDE with the quick API references coming in the form of suggestions.