Estoy probando un sitio con muchos proxies, y el problema es que algunos de estos proxies son terriblemente lentos. Por lo tanto, mi código se bloquea al cargar páginas de vez en cuando.¿Configurar un tiempo de espera real para cargar la página en Selenium WebDriver?
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://example.com/example-page.php")
element = browser.find_element_by_id("someElement")
He intentado un montón de cosas por el estilo explicit waits
o implicit waits
y estado buscando durante bastante tiempo, pero aún no han encontrado todavía una solución o solución. Nada parece afectar realmente a la línea de carga de la página browser.get("http://example.com/example-page.php")
, y es por eso que siempre está atorada allí.
¿Alguien tiene una solución para esto?
Actualización 1: Respuesta
JimEvans' resuelto mi problema anterior, y here usted puede encontrar parche pitón para esta nueva característica.
nuevo problema:
browser = webdriver.Firefox()
browser.set_page_load_timeout(30)
browser.get("http://example.com/example-page.php")
element = browser.find_element_by_id("elementA")
element.click() ## assume it's a link to a new page http://example.com/another-example.php
another_element = browser.find_element_by_id("another_element")
Como se puede ver browser.set_page_load_timeout(30)
sólo afecta browser.get("http://example.com/example-page.php")
que significa que si esta página se carga durante más de 30 segundos que se van a lanzar hacia fuera una excepción de tiempo de espera, pero el problema es que no tiene poder sobre la carga de la página como element.click()
, aunque no se bloquea hasta que la nueva página se carga por completo, another_element = browser.find_element_by_id("another_element")
es el nuevo dolor en el culo, porque explicit waits
o implicit waits
esperarían a que toda la página se cargara antes de que comenzara a buscar ese elemento. En algunos casos extremos, esto tomaría incluso HORAS. ¿Qué puedo hacer al respecto?
¡Genial! Sin duda una buena característica para tener. –
@JimEvans: Gracias amigo, acabo de encontrar el parche de Python para este http://code.google.com/p/selenium/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Stars%20Type% 20Status% 20Priority% 20Milestone% 20Owner% 20Summary & groupby = & sort = & id = 687, y funciona muy bien. – Shane
@JimEvans: Hola amigo, por favor revisa mi actualización. Hay un nuevo problema que me molesta. – Shane