title: Selenium random timeout exceptions without any message
body: <p><strong>Here is what I'm trying to do</strong> and most of the time I succeed:
  Basically I'm signing in on a website and then wait for a class to be in the source, then process the source code.</p>
  
  <p><strong>The exception I get:</strong></p>
  
  <pre><code>Traceback (most recent call last):
  File "foo.py", line 495, in &lt;module&gt;
  report(login, password)
  File "foo.py", line 430, in report
  data = bar(login, password)
  File "foo.py", line 113, in 
  ui.WebDriverWait(browser, 10).until(lambda browser: browser.find_elements_by_class_name("the-class-i-want"))
  File "/Library/Python/2.7/site-packages/selenium/webdriver/support/wait.py", line 71, in until
  raise TimeoutException(message)
  selenium.common.exceptions.TimeoutException: Message: '' 
  </code></pre>
  
  <p><strong>Here is the code:</strong></p>
  
  <pre><code>from selenium import webdriver
  import contextlib
  from selenium.webdriver.common.keys import Keys
  import selenium.webdriver.support.ui as ui
  from selenium.webdriver.support.wait import WebDriverWait
  
  with contextlib.closing(webdriver.PhantomJS('phantomjs')) as browser:
      browser.get('mywebsite')
      login_form = browser.find_element_by_id('login-form')
      email = browser.find_element_by_name('login')
      password = browser.find_element_by_name('password')
      email.send_keys(login)
      password.send_keys(password)
      password.send_keys(Keys.RETURN)
      ui.WebDriverWait(browser, 10).until(lambda browser: browser.find_elements_by_class_name("the-class-i-want"))
  </code></pre>
  
  <p>I tried this too:</p>
  
  <pre><code>wait_count = 0
      while wait_count &lt; 6:
          print wait_count
          ui.WebDriverWait(browser, 10).until(lambda browser: browser.find_elements_by_class_name("the-class-i-want"))
          if browser.find_elements_by_class_name("the-class-i-want"):
              break
          wait_count += 1
  </code></pre>
  
  <p>I get the same exception.</p>
  
  <p>I am currently trying this :</p>
  
  <pre><code>wait_count = 0
  while wait_count &lt; 6:
      try:
          ui.WebDriverWait(browser, 10).until(lambda browser: browser.find_elements_by_class_name("the-class-i-want"))
          if browser.find_elements_by_class_name("the-class-i-want"):
              break
      except:
          wait_count += 1
          continue
  </code></pre>
  
  <p>I haven't got to the point where it fails, I'm still testing it.</p>
  
  <p>Sorry this is very long. But I'd like to find a pythonic and clean solution to those random timeouts.</p>
  
  <p>Another info that could help too: the signing in process is sometimes very long, but even with a several minutes wait, it throws the exception.</p>