explicit wait code for seleniumupload function using selenium java 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: 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