A espera Implícita é apenas um comando que vai geralmente logo depois da criação/instância do driver (browser) que permite a espera por qualquer comando no restante do código, onde se um elemento ainda não está disponível, ele aguarda até o tempo definido no comando
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS)
A espera Explícita são esperas inseridas no código através de comandos específicos de esperas, como esperar por um elemento estar visível ou presente, esperar por uma imagen não estar mais visível na tela, entre outras. Existem duas formas de criar a espera explícita: WebDriverWait ou FluentWait
WebDriver driver = new FirefoxDriver();
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocatedBy(By.id("password")));
fonte: http://stefanteixeira.com.br/2014/04/29/entendendo-os-tipos-de-esperas-no-selenium-webdriver/