Implicit Wait: Sets a global timeout for all `findElement` calls. If the element is not found within the specified time, it throws `NoSuchElementException`. Explicit Wait: Waits for a specific condition to be true before proceeding (e.g., element is visible, clickable). Fluent Wait: Enhanced Explicit Wait with custom polling frequency and the ability to ignore specific exceptions. Best practice: Use explicit/fluent waits for specific conditions rather than relying on implicit waits.
Implicit: 'Wait up to 10 seconds for ANY element to appear'. Explicit: 'Wait up to 20 seconds for THIS SPECIFIC button to be clickable'. Fluent: 'Wait up to 20 seconds, checking every 500ms, ignoring stale element errors'.
You have a search result that takes anywhere from 2 to 20 seconds to load. Which wait is best?