implicit wait in selenium code example

Example 1: how to waitselenium webelement java

//required import
WebDriver driver = new ChromeDriver();
//											  Timeout in seconds
WebDriverWait wait = new WebDriverWait(driver, 15);

//Three most common explicit waits

//waits until the element is visible and can be clicked
wait.until(ExpectedConditions.elementToBeClickable(By.id("button1")));

//waits until the element is visible on the page somewhere i.e. pixels > 0
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("text_box1")));

//waits until the element is removed from the page
//This one is helpful when moving from one page to another
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.id("text_box1")));

//implicit wait will wait a set time, similar to Thread.sleep();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

//There is also a FluentWait, but I am unfamiliar with it

Example 2: implicit wait

1- Implicit Wait
Everytime we are trying to locate a webelement
is triggered. By default wait time is 0 second.
If we set the time to 10 seconds, and our driver
not able to find element, it will count for
given time. If element findst the webelement
it doesn't throw an exception.

Example 3: selenium wait seconds

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

Example 4: python selenium implicit wait

val = 20 # in seconds
driver.implicitly_wait(val)

Example 5: explicit wait in selenium

2- Explicit Wait
explicit is waiting for
explicit condition to happen
Like:
-elementIsDisplayed
-titleIs()
-visibilityOf
-elementToBeClickable

We need to create object from 
webdriverwait class

Example 6: selenium explicit wait

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()