You can solve this by using explicit wait so that you don't have to use hard wait.
If you fetching all the elements with one property and iterating through it using for each loop you can use wait inside the loop like this,
List<WebElement> elements = driver.findElements("Object property");
for(WebElement element:elements)
{
new WebDriverWait(driver,10).until(ExpectedConditions.presenceOfAllElementsLocatedBy("Object property"));
element.click();//or any other action
}
or for single element you can use below code,
new WebDriverWait(driver,10).until(ExpectedConditions.presenceOfAllElementsLocatedBy("Your object property"));
driver.findElement("Your object property").click();//or anyother action