Configurar um tempo limite real para carregar a página no Selenium WebDriver?

Estou testando um site com muitos proxies, e o problema é que alguns desses proxies são terrivelmente lentos. Portanto, meu código fica preso ao carregar páginas de vez em quando.

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("http://example.com/example-page.php")
element = browser.find_element_by_id("someElement")

Eu tentei muitas coisas comoexplicit waits ouimplicit waits e estava procurando por um bom tempo, mas ainda não encontrou uma solução ou solução alternativa. Nada parece realmente afetar a linha de carregamento da páginabrowser.get("http://example.com/example-page.php")e é por isso que está sempre preso lá.

Alguém tem uma solução para isso?

Atualização 1:

A resposta de JimEvans resolveu meu problema anterior, eAqui você pode encontrar patch de python para este novo recurso.

Novo 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 você pode verbrowser.set_page_load_timeout(30) afeta apenasbrowser.get("http://example.com/example-page.php") o que significa que, se esta página for carregada por mais de 30 segundos, ela descartará uma exceção de tempo limite, mas o problema é que ela não tem poder sobre o carregamento da página, comoelement.click(), embora não bloqueie até que a nova página seja totalmente carregada,another_element = browser.find_element_by_id("another_element") é a nova dor no rabo, porqueexplicit waits ouimplicit waits esperaria que a página inteira fosse carregada antes de começar a procurar por esse elemento. Em alguns casos extremos, isso levariaHORAS. O que posso fazer sobre isso?

questionAnswers(2)

yourAnswerToTheQuestion