This document discusses the proper use of implicit and explicit waits in Selenium. It notes that implicit waits should be used to wait for element presence, while explicit waits should not be used for this. Implicit wait timeouts should be set lower than explicit wait timeouts. Using implicit and explicit waits together requires care to avoid conflicts between the timeouts. The document provides examples of how to set up waits correctly and what exceptions may occur in different scenarios. It also briefly mentions alternatives to WebDriver waits like using Selenide.