from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
browser = webdriver.Firefox()
browser.get("http://testsite.com")
element = WebDriverWait(browser, 10).until(lambda browser : browser.find_element_by_id("element"))
element.click() # it actually goes to page http://testsite.com/test-page.html
print "Just clicked! And I'm expecting timeout error!"
new_element = WebDriverWait(browser, 0.1).until(lambda browser : browser.find_element_by_id("element"))
print "Too bad there's no timeout error, why?!"
OK, como se puede ver, incluso establezco el tiempo de espera en 0.1 segundos, todavía no se lanza una excepción de tiempo de espera. Cuando se ejecuta element.click()
, no se bloquea hasta que toda la página se carga y es por eso que apareció Just clicked! And I'm expecting timeout error!
, y para mi sorpresa new_element = WebDriverWait(browser, 0.1).until(lambda browser : browser.find_element_by_id("element"))
espere hasta que se cargue toda la página. Y si usa implicit waits
, obtendrá el mismo resultado.¿Dime por qué esto no termina con un error de tiempo de espera (selenium 2 webdriver)?
Mi punto es que a veces, después de hacer clic en un elemento, puede demorar hasta unas horas para que una página se cargue debido a un mal proxy, y obviamente DO NOT desea esperar tanto tiempo, lo que quiere es una excepción de tiempo de espera. En este caso, ¿cómo lo harías funcionar?
No entiendo muy bien a qué te refieres. ¿Podrías por favor ser más específico y cómo puedo hacer eso? – Shane
... y luego de actualizar a 2.22, me di cuenta de todos los lugares donde inconscientemente confié en esta espera implícita. XD – Isaac
No creo que esto sea del todo correcto. Estás hablando de driver.set_page_load_timeout() Creo, sin embargo, eso no tiene que ver con los clics. No todos los clics activan una carga de página. El tiempo de carga de la página es solo para cargar la página. El interlocutor también está teniendo problemas con el tiempo de espera para encontrar el elemento (no es necesario que participen los clics). – Purrell