Hi Bunty, WebDriverWait is applied on certain element with defined expected condition and time. This wait is only applied to the specified element. This wait can also throw exception when element is not found. Webdriver doesn't perform pooling for this wait scenario.
WebDriverWait wait = new WebDriverWait (driver, 20);
wait.until(ExpectedConditions.VisibilityofElementLocated(By.xpath(""//button[@value='Save Changes']"")));
Fluent wait is another type of Explicit wait and you can define polling and ignore the exception to continue with script execution in case element is not found. Here, we can set pooling time, which isn't possible in Webdriver wait.
new FluentWait<WebDriver>(driver).withTimeout(30, TimeUnit.SECONDS).pollin