Selenium random timeout exceptions without any message
Here is the answer I got after contacting Adam Goucher:
from selenium import webdriverimport contextlibfrom selenium.webdriver.common.keys import Keysimport selenium.webdriver.support.ui as uifrom selenium.webdriver.support.wait import WebDriverWaitdef waiter(browser): elements = browser.find_elements_by_class_name('the-class-i-want') if len(elements) != 0: return elements return Falsewith 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(waiter)
And this works perfectly fine!