You should use Explicit wait or Fluent Wait for this matter. Below is the example which will help you
WebDriverWait wait = new WebDriverWait(WebDriverRefrence,20);
WebElement web1;
web_1= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("web_1")));
Example of Fluent Wait -
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)                           
.withTimeout(20, TimeUnit.SECONDS)         
.pollingEvery(5, TimeUnit.SECONDS)         
.ignoring(NoSuchElementException.class);    
  WebElement web1= wait.until(new Function<WebDriver, WebElement>() {      
public WebElement apply(WebDriver driver) {
return driver.findElement(By.id("web_1"));    
} 
});