title: Difference between EC.element_to_be_clickable and EC.presence_of_element_located to click() an element
body: <p>I'm getting TimeoutExceptions while clicking an element intermittently. I have tried with explicit waits and time.sleep(). It works for a while and again i get exceptions.</p>
  
  <p>I want to understand if it is caused by expected condition. </p>
  
  <pre><code>WebDriverWait(self.driver, 40).until(EC.element_to_be_clickable((By.XPATH, &lt;locator&gt;  ))).click()
  </code></pre>
  
  <p>Will it help to avoid timeoutexception if I use below condition?</p>
  
  <pre><code>element = WebDriverWait(self.driver, 40).until(EC.presence_of_element_located((By.XPATH, &lt;locator&gt;  )))
  element.click()
  </code></pre>