title: WebDriver Wait '.until(ExpectedConditions.elementToBeClickable' only works when i add Thread.sleep(500) to the Code?
body: <ol>
  <li><p>I'm trying to click on a button which is visible on a page by using webdriver wait but webdriver is only able to click on the button once I add a <code>Thread.sleep</code> to the code. </p></li>
  <li><p>I have also checked the button to see whether its visible (True) before I execute my code and it in turn <code>returns = true</code>. <br><br></p></li>
  </ol>
  
  <p>//Button Visiblity check:</p>
  
  <pre><code>List&lt;WebElement&gt; signOutList = driver.findElements(.xpath(".//*[starts-with(@id,'fulfillment-time-type-section-')]/div[2]//button"));
  Assert.assertTrue(signOutList.size() &gt; 0);
  </code></pre>
  
  <p>//The code below Doesn't click on the button</p>
  
  <pre><code>By timeDropdownButton = By.xpath(".//*[starts-with(@id,'fulfillment-time-type-section-')]/div[2]//button");
  WebElement myDynamicElement = (new WebDriverWait(driver, 10))
                .until(ExpectedConditions.elementToBeClickable(timeDropdownButton));
  myDynamicElement.click();
  </code></pre>
  
  <p>//The code below Does click on the button: </p>
  
  <pre><code>Thread.sleep(500);
  By timeDropdownButton = By.xpath(".//*[starts-with(@id,'fulfillment-time-type-section-')]/div[2]//button");
  WebElement myDynamicElement = (new WebDriverWait(driver, 10))
                .until(ExpectedConditions.elementToBeClickable(timeDropdownButton));
  myDynamicElement.click();
  </code></pre>
  
  <p><br>
  Please note I have also tried to click the button using JS code and WebDriver actions etc<br></p>
  
  <p>I don't know why 'Wait Clickable' only works when I combine with 'Thread.sleep'?</p>
  
  <p><a href="http://i.stack.imgur.com/yIBxn.png" rel="nofollow">The button I'm trying to click</a></p>